在sklearn的分类报告中,f1是最好的准确度度量吗?

数据挖掘 分类 评估
2022-02-20 23:17:15

在提供的分类报告中sklearn我应该查看哪个分数才能最好地确定我的模型的准确性?

             precision    recall  f1-score   support

          0       0.70      0.68      0.69      5007
          1       0.65      0.54      0.59      2270
          2       0.37      0.22      0.28       614
          3       0.74      0.30      0.42       252
          4       0.59      0.42      0.49       262
          5       0.35      0.11      0.17       455
          6       0.34      0.23      0.27       248
          7       0.09      0.05      0.06       133
          8       0.38      0.15      0.21       395
          9       0.43      0.31      0.36       182
         10       0.23      0.12      0.16       230

avg / total       0.60      0.52      0.55     10048

据我了解:

  • 精度告诉我们分类器 在所有阳性结果中正确标记为真阳性的样本数量。

  • Recall 告诉我们分类器能够从集合中的所有样本中得到正确的样本数量。

  • F1-score 是准确率和召回率的调和平均值。

也许我误解了classification_report,但不会f1-score对分类器的性能给出最好的看法吗?

2个回答

你弄错了recall这并不意味着“在所有样本中都正确”。

看着图像,

Recall=TPTP+FN

它在这里解释。

从上面的文档中,您还可以看到您可以修改您F-beta score的套件以增加权重、精度或召回率。因此,f-score可以让您全面了解分类器的性能,但如果您需要知道分类器在哪些样本上失败,则需要precisionrecall

F1 仅在 Precision 和 Recall 相似时才有用。

这就是为什么 SKLearn 拥有微观和宏观(加权)F1。

在数据科学面试中,回答 F1 是最重要的衡量标准,是初学者的标志。我倾向于同意......有很多事情需要注意。例如

  • 准确度 kFold 交叉验证
  • 标准差高还是低?高水平表示存在问题(例如 >5%)
  • 学习曲线告诉你什么?你有足够的数据吗?
  • 如果您有 0.01% 的标签 1,那么 0.70 的召回率可能会很棒
  • 对于高度不平衡的数据集,AUROC 很重要。
  • 我更喜欢具有低方差算法的稍低的 F1(例如逻辑回归)
  • 如果您过度拟合决策树,高 F1 分数可能不会那么好
  • ……

祝你好运!