Machine learning 如何使用Scikit中的OneVsRestClassifier学习分析使用多类分类预测每个单独类的性能?

Machine learning 如何使用Scikit中的OneVsRestClassifier学习分析使用多类分类预测每个单独类的性能?,machine-learning,scikit-learn,Machine Learning,Scikit Learn,scikit学习网站上的OneVsRestClassifier文档中说明了以下内容: 由于每个类仅由一个和一个分类器表示,因此可以通过检查其相应的分类器来获得有关该类的知识 但它没有解释如何做到这一点,我也看不出本页文档中的任何方法是如何做到这一点的。我希望能够打印出每个类的模型精度,这样我就可以看到它在预测每个类时的性能 到目前为止,我所拥有的代码如下所示,但我真的不知道从这里可以走到哪里,因为文档中似乎没有解释如何做到这一点的内容。非常感谢您的帮助 def predict_one_vs_re

scikit学习网站上的OneVsRestClassifier文档中说明了以下内容:

由于每个类仅由一个和一个分类器表示,因此可以通过检查其相应的分类器来获得有关该类的知识

但它没有解释如何做到这一点,我也看不出本页文档中的任何方法是如何做到这一点的。我希望能够打印出每个类的模型精度,这样我就可以看到它在预测每个类时的性能

到目前为止,我所拥有的代码如下所示,但我真的不知道从这里可以走到哪里,因为文档中似乎没有解释如何做到这一点的内容。非常感谢您的帮助

def predict_one_vs_rest(self):
    clf = OneVsRestClassifier(LinearSVC(random_state=0))
    clf.fit(self.X, self.y)
    result = clf.classes_
    estimators = clf.estimators_
    print(result)
    print("")
    print(estimators)

您不需要在OneVsRestClassifier中包装LinearSVC。正如上面明确指出的,LinearSVC已经支持多类分类。
例如,为了检查分类的准确性,您可以使用混淆矩阵或分类报告。

为此,我最终使用了分类报告。@Andreas Mueller我想知道,如果我要使用的是不支持多类或多标签分类的分类器,该怎么办?在这种情况下,似乎需要一个VSRESTClassifier,如何按照OP中的要求评估每个类的性能?sklearn中的所有分类器都支持多类。对于多标签,如果估计器不支持,您确实可以使用OVR。不过,使用或不使用OVR对评估没有任何影响。您可以在文档中查看哪些指标支持多标签任务。@AndreasMueller:我正在使用多类线性回归分类器。它给出了50%的总准确度。当我想要绘制ROC曲线时,我需要使用OVR和线性回归,这会得到27%的分数。但是ROC曲线和混淆矩阵一样好,所有类别的面积都接近0.8。精度差的原因是什么。@bmuRuer是的,这将允许您使用多核。一般来说,这并不一定意味着它更快,但我认为SVC中的OvO是完全串行的,并且没有常见的计算,所以我认为它应该更快。(请注意,SVC在内部使用OvO而不是OvR)。