Python 和 scikit learn:我的模型的输出是 nan 而不是类别名称

我正在研究基于输入预测输出类别的 ML 模型。我有一个没有错误的工作模型,但是,我将 nan 作为输出而不是“类别”值。我正在处理的数据都是文本。


这是我的代码:


import pandas as pd

import numpy as np


df=pd.read_excel('D:\\android\\medicare.xlsx')



X=df['Product Description'].fillna(' ')

Y=df['Category'].astype(str)


from sklearn.model_selection import train_test_split

X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=.25,random_state=42)


from sklearn.feature_extraction.text import CountVectorizer

count_vector=CountVectorizer()

X_train_count=count_vector.fit_transform((X_train).values.astype('U'))


from sklearn.feature_extraction.text import TfidfTransformer

tfidf_transformer= TfidfTransformer()

X_train_tfidf=tfidf_transformer.fit_transform(X_train_count)

X_train_tfidf.shape


from sklearn.naive_bayes import MultinomialNB


clf = MultinomialNB().fit(X_train_tfidf, Y_train)



from sklearn.pipeline import Pipeline

from sklearn.externals import joblib

import pickle

text_clf=Pipeline([('vect',CountVectorizer()),('tfidf',TfidfTransformer()),('clf',MultinomialNB()),])

text_clf=text_clf.fit(X_train,Y_train)

joblib.dump(text_clf,'model.pkl')

X_test1=['SOTALOL 160MG CP SEC']

predicted=text_clf.predict(X_test1)

proab=text_clf.predict_proba(X_test1)

print (str(predicted[0]))

print (proab)

print (text_clf.classes_)

print (max(proab[0]))

这是我的输出:我期待一个类别代码,但输出为“nan”。


nan

[[3.79853900e-06 2.84302863e-05 7.59252188e-06 ... 2.84280220e-05

  1.89960087e-06 4.28977861e-04]]

['153 Sm-SAMARIUM ACIDE ETHYLENEDIAMINETETRAMETHYLENE PHOSPHONIQUE'

 'ABAISSE LANGUE' 'ABATACEPT' ... 'solutions salines'

 'Électrodes ou câbles pour endoscopie'

 'Étiquettes médicales à usage général ']

0.8404466876175863


扬帆大鱼
浏览 370回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python