Python 3.x 如何通过删除此错误生成分类报告?
我想从已经有目标名称的语料库[pos,neg]生成数据集电影评论的分类报告。但发现一个错误 代码:Python 3.x 如何通过删除此错误生成分类报告?,python-3.x,scikit-learn,Python 3.x,Scikit Learn,我想从已经有目标名称的语料库[pos,neg]生成数据集电影评论的分类报告。但发现一个错误 代码: movie_train_clf = Pipeline([('vect',CountVectorizer(stop_words='english')),('tfidf',TfidfTransformer()),('clas',BernoulliNB(fit_prior=True))]) movie_train_clas = movie_train_clf.fit(movie_train.data
movie_train_clf = Pipeline([('vect',CountVectorizer(stop_words='english')),('tfidf',TfidfTransformer()),('clas',BernoulliNB(fit_prior=True))])
movie_train_clas = movie_train_clf.fit(movie_train.data ,movie_train.target)
predict = movie_train_clas.predict(movie_train.data)
np.mean(predict==movie_train.target)
TypeError: iteration over a 0-d array.
现在我使用分类报告
from sklearn.metrics import classification_report
print(classification_report(predict, movie_train_clas,target_names==target_names))
错误:
movie_train_clf = Pipeline([('vect',CountVectorizer(stop_words='english')),('tfidf',TfidfTransformer()),('clas',BernoulliNB(fit_prior=True))])
movie_train_clas = movie_train_clf.fit(movie_train.data ,movie_train.target)
predict = movie_train_clas.predict(movie_train.data)
np.mean(predict==movie_train.target)
TypeError: iteration over a 0-d array.
请帮助我正确的语法 您的代码中有多个错误: 1) 您在
分类报告
中的参数顺序错误。根据:
第一个参数是真标签,第二个参数是预测标签
2) 您正在使用movie\u train\u clas
代替真实标签movie\u train\u clas
因为您的代码是movie\u train\u clf.fit()的返回值,所以它是movie\u train\u clf
本身fit()
返回自身,因此不能使用它来代替地面真实值标签
3) 正如@AmiTavory所指出的,当前错误是由于使用了比较运算符(==)
来代替赋值(=)
。对分类报告的正确调用应该是:
classification_report(movie_train.target, predict, target_names=target_names)
您有一个输入错误target_names==target_names
;只使用一个=
。