Scikit多类分类指标,分类报告



我正在使用Scikit学习0.15.2用于多类分类问题。如下:Scikit 0.14多标签指标,直到我开始使用Multilabelbinarizer:

时,我得到了很多弃用游戏:

"弃用:对序列序列多标签表示的直接支持将无法从0.17版中获得。使用sklearn.preprocessing.multilabelbinarizer将其转换为标签指示剂表示。"

>

但是,我找不到一种方法来获取分类报告(精确,召回,f-measion)与之合作,如前所述,如下所示:Scikit 0.14多标签指标

我尝试使用下面的inverse_transform,这给出了一个分类_report,但也再次发出警告,即从0.17起,此代码将断开。

如何获得多类分类问题的措施?

示例代码:

import numpy as np
from sklearn.multiclass import OneVsRestClassifier
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.svm import LinearSVC
from sklearn.metrics import classification_report
# Some simple data:
X_train = np.array([[0,0,0], [0,0,1], [0,1,0], [1,0,0], [1,1,1]])
y_train = [[1], [1], [1,2], [2], [2]]
# Use MultiLabelBinarizer and train a multi-class classifier:
mlb = MultiLabelBinarizer(sparse_output=True)
y_train_mlb = mlb.fit_transform(y_train)
clf = OneVsRestClassifier(LinearSVC())
clf.fit(X_train, y_train_mlb)
# classification_report, here I did not find a way to use y_train_mlb, 
# I am getting a lot of DeprecationWarnings
predictions_test = mlb.inverse_transform(clf.predict(X_train))
print classification_report(y_train, predictions_test)
# Predict new example:
print mlb.inverse_transform(clf.predict(np.array([0,1,0])))

似乎您必须使用二进制标签运行分类报告:

print classification_report(y_train_mlb, clf.predict(X_train))

相关内容

  • 没有找到相关文章

最新更新