如何解决多标签文本分类的分类报告?
我正在研究多标签文本分类。 我试图打印机器学习的分类报告,但只打印每个类。 我怎样才能得到所有班级的分类报告? 这部分代码
此标签代码
categories = list(data_raw.columns.values)
categories = categories[1:]
评估:
def modelEvaluation(predictions,y_test_set):
print("\nAccuracy on validation set: {:.4f}".format(accuracy_score(y_test_set,predictions)))
print("\nClassification report : \n",metrics.classification_report(y_test_set,predictions))
print("\nConfusion Matrix : \n",multilabel_confusion_matrix(y_test_set,predictions))
这对于机器学习
from sklearn.svm import LinearSVC
SVC_pipeline = Pipeline([
('clf',OneVsRestClassifier(LinearSVC(),n_jobs=1)),])
for category in categories:
printmd('**Processing {} comments...**'.format(category))
# Training logistic regression model on train data
SVC_pipeline.fit(x_train,train[category])
# calculating test accuracy
prediction = SVC_pipeline.predict(x_test)
print('Test accuracy is {}'.format(accuracy_score(test[category],prediction)))
print("\n")
modelEvaluation(prediction,test[category])
如果我尝试像下面的代码那样单独打印分类报告,它会给我最后一堂课的结果
from sklearn.metrics import classification_report
print("\nClassification report : \n",metrics.classification_report(test[category],prediction))
解决方法
使用 without test[category]
并提供整个测试集,其中包含您为其构建模型的所有类。
print("\nClassification report : \n",metrics.classification_report(y_test,predictions))
其中 y_test
是测试集 X_test
的真实标签(真实输出)。
您正在通过测试集 (X_test
) 而不是该测试集的标签 (y_test
)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。