如何告诉 scikit-learn 为哪个标签给出了 F-1/precision/recall 分数(在二进制分类中)?
Posted
技术标签:
【中文标题】如何告诉 scikit-learn 为哪个标签给出了 F-1/precision/recall 分数(在二进制分类中)?【英文标题】:How to tell scikit-learn for which label the F-1/precision/recall score is given (in binary classification)? 【发布时间】:2016-03-20 15:58:41 【问题描述】:正如this article 中所解释的,无论这些计算是基于正类还是负类,计算 F-1 分数(即计算召回率和精度)都很重要。例如,如果我有一个带有 1% 的 A 类标签和 99% 的 B 类标签的倾斜数据集,并且我只是将 A 分配为正类并将所有测试项目分类为正类,那么我的 F-1 分数将非常好。如何告诉 scikit-learn 哪个类别是二进制分类中的正类别? (如果有帮助,我可以提供代码。)
【问题讨论】:
相关:***.com/questions/50933561/… 【参考方案1】:对于二元分类,sklearn.metrics.f1_score
默认会假设 1 是正类,0 是负类。如果您使用这些约定(0
用于 B 类,1
用于 A 类),它应该会为您提供所需的行为。可以通过将 pos_label
关键字参数传递给 f1_score
函数来覆盖此行为。
见:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html
【讨论】:
也感谢您的回答。但是,因此官方文档中是否有任何参考? 阅读手册页scikit-learn.org/stable/modules/generated/…,pos_label
默认为1为正类,但可以覆盖。以上是关于如何告诉 scikit-learn 为哪个标签给出了 F-1/precision/recall 分数(在二进制分类中)?的主要内容,如果未能解决你的问题,请参考以下文章
Scikit-learn 和 Yellowbrick 给出不同的分数
如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python
Scikit-Learn:标签不是 x 出现在所有训练示例中