分类算法评估指标 精确率与召回率,RoC曲线与PR曲线

基本概念

  • True Positives,TP:预测为正样本,实际也为正样本的特征数

  • False Positives,FP:预测为正样本,实际为负样本的特征数

  • True Negatives,TN:预测为负样本,实际也为负样本的特征数

  • False Negatives,FN:预测为负样本,实际为正样本的特征数

如下图所示:

精确率(precision),召回率(Recall)与特异性(specificity)

精确率(Precision)的定义在上图可以看出,是绿色半圆除以红色绿色组成的圆。严格的数学定义如下:

P=TP/(TP+FP)

召回率(Recall)的定义也在图上能看出,是绿色半圆除以左边的长方形。严格的数学定义如下:
R=TP/(TP+FN)

特异性(specificity)的定义图上没有直接写明,这里给出,是右边长方形去掉红色半圆部分后除以右边的长方形。严格的数学定义如下:

S=TN/(FP+TN)

有时也用一个F1值来综合评估精确率和召回率,它是精确率和召回率的调和均值。当精确率和召回率都高时,F1值也会高。严格的数学定义如下:

2/F1=1/P+1/R 

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

Fβ=(1+β2)∗P∗R/(β2∗P+R)

此外还有灵敏度(true positive rate ,TPR),它是所有实际正例中,正确识别的正例比例,它和召回率的表达式没有区别。严格的数学定义如下:

TPR=TP/(TP+FN)

另一个是1-特异度(false positive rate, FPR),它是实际负例中,错误得识别为正例的负例比例。严格的数学定义如下:

FPR=FP/(FP+TN)

RoC曲线和PR曲线

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

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

在negative instances的数量远远大于positive instances的data set里, PRC更能有效衡量分类器的好坏。

参考自精确率与召回率,RoC曲线与PR曲线

猜你喜欢

转载自www.cnblogs.com/wmx24/p/9554330.html