机器学习- OneVsRestClassifier的损失函数



我有一个经过培训的OneVsRestClassifier (scikit-learn)。

clf = OneVsRestClassifier(LogisticRegression(C=1.2, penalty='l1')).fit(X_train, y_train)

我想找出我的测试数据的损失。我使用log_loss函数,但它似乎不起作用,因为我有多个类作为每个测试用例的输出。我该怎么办?

您所指的分类问题称为多标签分类问题。您已经做出了使用OneVsRestClassifier实现此目的的正确决定。默认情况下,score方法使用子集精度,这是一个非常苛刻的度量,因为它要求您正确猜测标签的整个子集。

您可以使用scikit-learn提供的其他损失函数如下:

  1. 汉明损失 -这测量你的标签预测和真实标签之间的汉明距离。这是一个理解汉明距离的直观公式。
  2. Jaccard相似系数得分 -这衡量你的预测标签和真实标签之间的Jaccard相似度。
  3. Precision, Recall和F-Measures—在多标签分类的情况下,Precision, Recall和F-Measures的概念可以独立应用于每个类别。下面的指南解释了如何在多标签分类中跨所有标签组合它们。

如果您还需要像在多标签排序问题中那样对标签进行排序,那么scikit-learn中还有其他更高级的技术,这些技术在这里有很好的示例文档。如果您正在处理这类问题,请在评论中告诉我,我会更详细地解释这些指标。

希望这对你有帮助!

相关内容

  • 没有找到相关文章

最新更新