准确率/精确率/召回率

准确率(accuracy)

准确率是一个用于评估分类模型的指标。通俗来说,准确率是指我们的模型预测正确的结果所占的比例。正式点说,准确率的定义如下:

Accuracy=Number of correct predictionsTotal number of predictions

对于二元分类,也可以根据正类别和负类别按如下方式计算准确率:

Accuracy=TP+TN / TP+TN+FP+FN

其中,TP = 真正例,TN = 真负例,FP = 假正例,FN = 假负例。

让我们来试着计算一下以下模型的准确率,该模型将 100 个肿瘤分为恶性 (正类别)或良性(负类别):

真正例 (TP):
  • 真实情况:恶性
  • 机器学习模型预测的结果:恶性
  • TP 结果数:1
假正例 (FP):
  • 真实情况:良性
  • 机器学习模型预测的结果:恶性
  • FP 结果数:1
假负例 (FN):
  • 真实情况:恶性
  • 机器学习模型预测的结果:良性
  • FN 结果数:8
真负例 (TN):
  • 真实情况:良性
  • 机器学习模型预测的结果:良性
  • TN 结果数:90

Accuracy=TP+TN / TP+TN+FP+FN=1+90 / 1+90+1+8=0.91

从数据上看 91%的准确率还挺好,但实际上哪?9个恶性肿瘤中,有8个都没有预测出,这个预测模型肯定有问题,这个描述指标也不正确。

问题出在哪里?

分类不平衡的数据集(比如正类别标签和负类别标签的数量之间存在明显差异)时,单单准确率一项并不能反映全面情况。

引入精确率和召回率

  • 精确率:(预测为正例且正确次数)/(所有预测为正例的次数)
  •    TP / TP + FP
    • 当模型的预测为“正”类别时,预测正确吗?
    • 直觉:模型是否过于频繁地预测为“恶性”?
  • 召回率:(预测为正例且正确次数)/(所有实际上正类别数[和预测没有关系])
    • 在所有可能的正类别中,模型正确地识别出了多少?
    • 直觉:是否漏掉了任何 “恶性” 的情况?

猜你喜欢

转载自blog.csdn.net/u011279649/article/details/82178818