【问题标题】:How to calculate accurecy measures for "OneVsRestClassifier" classifier?如何计算“OneVsRestClassifier”分类器的准确度度量?
【发布时间】:2020-01-03 23:39:07
【问题描述】:

我有一个多类分类问题,下面的代码可以在多类级别对数据进行分类。

from sklearn import datasets
from sklearn.preprocessing import label_binarize
from sklearn.multiclass import OneVsRestClassifier
from sklearn.model_selection import cross_val_predict
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA


iris = datasets.load_iris()
X = iris.data
y = iris.target

# Binarize the output
y_bin = label_binarize(y, classes=[0, 1, 2])
n_classes = y_bin.shape[1]

clf = OneVsRestClassifier(QDA())
y_score = cross_val_predict(clf, X, y, cv=10 ,method='predict_proba')

如何使用上述代码计算此分类器的性能指标(如下所列)?

accuracy 
specificity
sensitivity
presison
mcc
f1
Recall 

谢谢你..

【问题讨论】:

  • 一大堆代码绘制ROC曲线的目的到底是什么,与问题无关? (已移除)

标签: python machine-learning scikit-learn multiclass-classification


【解决方案1】:

你应该可以做到:

from sklearn.metrics import classification_report
print(classification_report(y_test,y_pred))

据我了解,在这种情况下,y_test 是您定义为 y 的内容,y_pred 可以通过以下方式轻松计算:

y_pred = clf.predict(X)

您可以在here 中找到有关指标的更多信息以及wikipedia 中的一些解释,请记住对于多标签类,真阴性和真阳性的概念应该有不同的理解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2013-11-20
    • 2021-11-02
    • 2017-06-03
    • 2018-11-26
    • 2021-09-03
    相关资源
    最近更新 更多