机器学习中的评价指标

基本概念

混淆矩阵

- Positive Predictions Negative Predictions
Positive Label TP (True Positive) FN
Negative Label FP TN

Accuracy(ACC,准确率)

ACC=TP+TNFP+FN+TP+TN=

Precision(PRE,精度、查准率)

PRE=TPTP+FP=

True Positive Rate(TPR,召回率、查全率)

TPR=TPTP+FN=

False Positive Rate(FPR,误报率)

FPR=FPTN+FP=

False Negative Rate(FNR,漏报率)

FNR=FNTN+FN=

评估曲线

PR 曲线

精度又名查准率, 关心的是 “查出的所有正例中, 哪些正例是查对的”
召回率又名查全率, 关心的是 “对于所有的正例, 正确查出了多少个”

这二者是一对矛盾的度量, 因为我们很容易知道:

  • 如果我们希望查准率高, 那么可以认为是 “只有当十成把握认为其是正例时, 才将其挑出”。
  • 而如果我们希望召回率高, 那么可以认为是 “宁错杀一百, 不放过一个”. 查准率和查全率的曲线又叫 PR 曲线, 如下图所示:

nkRp6J.jpg

通常情况下, 如果一个学习器的 PR 曲线被另一个学习器 完全包住. 那么我们就认为后者的性能优于前者. 当二者存在交叉时, 我们可以通过四种方式来确定学习器的优劣:

  1. 计算 PR 曲线与横纵坐标轴围成的面积, 面积越大越好;

  2. 利用平衡点 (BEP, 查准率=查全率), BEP 越大越好;

  3. 利用$F\beta,\beta<1(),\beta>1()F\beta$的计算公式来自于加权调和平均数:

    1Fβ=11+β2(1P+β2R)
    Fβ=(1+β2)×P×Rβ2×P+R

ROC 曲线

​ 很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值分为正例,否则分为负例,因此分类过程可以看做是选取一个合适的截断点。那么到底什么样的截断点更合适呢? ROC 正是从这个角度来研究学习器好坏的工具。

​ ROC 曲线的纵坐标和横坐标分别是召回率和误诊率,下图为 ROC 曲线图,实际任务中会利用有限个测试样本来绘制 ROC 图,所以产生的大多不是平滑的曲线。

nk7o59.jpg

绘制 ROC 曲线

​ 假设已经得出一系列样本被划分为正类的概率,然后按照大小排序,下图是一个示例,图中共有20个测试样本,”Class” 一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),”Score” 表示每个测试样本属于正样本的概率。

nkLzOP.jpg

​ 接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:

nkOQkF.jpg

ROC 曲线的意义

​ 有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的准确性就越高。最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少。

AUC 的含义及计算

AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。

​ 在进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性的断言两者孰优孰劣。此时如果一定要进行比较,则比较合理的判断依据是比较AUC,AUC大的学习器通常性能更好。

参考文献:

计算机视觉知识总结

AUC 百度百科

精确率、召回率、真正类率(TPR)、假正类率(FPR)ROC曲线

机器学习笔记~F-score beta衡量precision和recall之间重要性

-------------本文结束感谢您的阅读-------------