Python 3.x 如何通过删除此错误生成分类报告?

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

我想从已经有目标名称的语料库[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.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
;只使用一个
=