偏斜类性能评估:PR曲线与RoC曲线

偏斜类

偏斜类是指在分类任务中一类的数据远大于另一类的数据.最典型的例子是判断是否得癌症.因为患癌症的概率比较小,所以数据中患癌症的样本数要远小于没有患癌症的样本.

偏斜类会导致一些问题,比如说我们有一个癌症判断模型,这个模型的错误率为1%.如果是正常的分类任务,我们认为1%的错误率还可以,但是在偏斜类中,考虑到患癌症的人数只有0.5%,那么这个错误率就很差了.因为即使把全部患癌人都判断错,错误率也只有0.5%,而模型1%的错误率显然误差很大.

精准率/召回率

遇到偏斜类问题时,我们可以使用精准率和召回率来衡量的正确率.

精准率(Precision):

P = \frac{TP}{TP + FP }

召回率(Recall):

R = \frac{TP}{TP + FN }

精准率与回召率都是越高越好.

精准率和召回率又被称为查准率和查全率,我觉着这两个名字更为贴切,查准率衡量预测是不是准确,查全率衡量预测是不是全面.

就这两个概念,我记了能有四五次了吧,也没记住谁除以谁,这里画个图帮助记忆:

image

查准率是第一个格子除以左边两个格子之和,查全率是第一个格子除以对角线的两个格子之和。

F1 score

有的时候我们很难决定查准率高点好,还是回召率高点好.比如说下面的数据:

Precision Recall F1 score
Algorithm1 0.5 0.4 0.444
Algorithm2 0.7 0.1 0.175
Algorithm3 0.02 1.0 0.0392

这时我们可以使用F1 score最高的.

F_1 = 2\frac{PR}{P + R}

另外F1 score最大值为1,即P与R都为1的时候.而P与R有一个比较小,F1 score就会很小.

有时候我们对精确率和召回率并不是一视同仁,比如有时候我们更加重视精确率。我们用一个参数β来度量两者之间的关系。如果 \beta>1 , 召回率有更大影响,如果 \beta<1 ,精确率有更大影响。自然,当 \beta=1 的时候,精确率和召回率影响力相同,和F1形式一样。含有度量参数 \beta 的F1我们记为 F_\beta , 严格的数学定义如下:

F_\beta = \frac{(1+\beta^2)*P*R}{\beta^2*P + R}

RoC曲线和PR曲线

假阳性率(False Positive Rate):

FPR = \frac{FP}{FP + TN }

真阳性率(True Positive Rate):

TPR = \frac{TP}{TP + FN }

以TPR为y轴,以FPR为x轴,我们就直接得到了RoC曲线。从FPR和TPR的定义可以理解,TPR越高,FPR越小,我们的模型和算法就越高效。也就是画出来的RoC曲线越靠近左上越好。如下图左图所示。从几何的角度讲,RoC曲线下方的面积越大越大,则模型越优。所以有时候我们用RoC曲线下的面积,即AUC(Area Under Curve)值来作为算法和模型好坏的标准。

image

以精确率为y轴,以召回率为x轴,我们就得到了PR曲线。仍然从精确率和召回率的定义可以理解,精确率越高,召回率越高,我们的模型和算法就越高效。也就是画出来的PR曲线越靠近右上越好。如上图右图所示。

使用RoC曲线和PR曲线,我们就能很方便的评估我们的模型的分类能力的优劣了。

posted @ 2018-08-10 09:54:48
评论加载中...
发表评论