基本概念
混淆矩阵
- | Positive Predictions | Negative Predictions |
---|---|---|
Positive Label | TP (True Positive) | FN |
Negative Label | FP | TN |
Accuracy(ACC,准确率)
Precision(PRE,精度、查准率)
True Positive Rate(TPR,召回率、查全率)
False Positive Rate(FPR,误报率)
False Negative Rate(FNR,漏报率)
评估曲线
PR 曲线
精度又名查准率, 关心的是 “查出的所有正例中, 哪些正例是查对的”
召回率又名查全率, 关心的是 “对于所有的正例, 正确查出了多少个”
这二者是一对矛盾的度量, 因为我们很容易知道:
- 如果我们希望查准率高, 那么可以认为是 “只有当十成把握认为其是正例时, 才将其挑出”。
- 而如果我们希望召回率高, 那么可以认为是 “宁错杀一百, 不放过一个”. 查准率和查全率的曲线又叫 PR 曲线, 如下图所示:
通常情况下, 如果一个学习器的 PR 曲线被另一个学习器 完全包住. 那么我们就认为后者的性能优于前者. 当二者存在交叉时, 我们可以通过四种方式来确定学习器的优劣:
计算 PR 曲线与横纵坐标轴围成的面积, 面积越大越好;
利用平衡点 (BEP, 查准率=查全率), BEP 越大越好;
利用$F\beta$度量, 当 $\beta<1$ 时, 查准率(精度)权重更大, 当$\beta>1$时, 查全率(召回率)权重更大。$F1$>\beta$的计算公式来自于加权调和平均数:
ROC 曲线
很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值分为正例,否则分为负例,因此分类过程可以看做是选取一个合适的截断点。那么到底什么样的截断点更合适呢? ROC 正是从这个角度来研究学习器好坏的工具。
ROC 曲线的纵坐标和横坐标分别是召回率和误诊率,下图为 ROC 曲线图,实际任务中会利用有限个测试样本来绘制 ROC 图,所以产生的大多不是平滑的曲线。
绘制 ROC 曲线
假设已经得出一系列样本被划分为正类的概率,然后按照大小排序,下图是一个示例,图中共有20个测试样本,”Class” 一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),”Score” 表示每个测试样本属于正样本的概率。
接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:
ROC 曲线的意义
有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的准确性就越高。最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少。
AUC 的含义及计算
AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。
在进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性的断言两者孰优孰劣。此时如果一定要进行比较,则比较合理的判断依据是比较AUC,AUC大的学习器通常性能更好。