P-R曲线和ROC曲线

混淆矩阵

对于二分类问题,可将样例根据其真实类别与学习期预测类别的组合划分为真正例(True Positive),假正例(False Positive),真反例(True Negative),假反例(False Negative)四种情形,四种情形组成的混淆矩阵如下:

真实情况预测结果 
 正例反例
正例TPFN
反例FPTN

 

TP:真正例(true positive),即真实结果和预测结果都是正例。

FP:假正例(false positive),即真实结果是反例、预测结果是正例。

TN:真正例(true negative),即真实结果和预测结果都是反例。

FN:假反例(false negative),即真实结果是正例、预测结果是反例。

 

查准率、查全率

查准率P(Precision)与查全率R(Recall)分别定义为:

 

                                                                      

查准率:真正例在预测结果为正例中占的比例(预测正确中真的正确的比例)

查全率:真正例在所有真实结果是正例中占的比例(全部正例中预测为正例的比例)

查准率与查全率是一对矛盾的度量,我们可以用极端的方式去理解这一矛盾。若所有测试样本的分类结果都是正样本,那么模型的查全率为1,查准率就很低;若几乎所有测试样本的分类结果都是负样本,那么模型的查准率很高,查全率就很低。

P-R曲线

算法对样本进行分类时,都会有置信度,即表示该样本是正样本的概率,比如99%的概率认为样本A是正例,1%的概率认为样本B是正例。通过选择合适的阈值,比如50%,对样本进行划分,概率大于50%的就认为是正例,小于50%的就是负例。

通过置信度就可以对所有样本进行排序,再逐个样本选择阈值,在该样本之前的都属于正例,该样本之后的都属于负例。每一个样本作为划分阈值时,都可以计算对应的precision和recall,那么就可以以此绘制曲线。

研究P-R曲线(书上的都长这样)

当然,这种曲线是有可能的。但是仔细琢磨就会发现一些规律和一些问题。

根据逐个样本作为阈值划分点的方法,可以推敲出,recall值是递增的(但并非严格递增),随着划分点左移,正例被判别为正例的越来越多,不会减少。而精确率precision并非递减,二是有可能振荡的,虽然正例被判为正例的变多,但负例被判为正例的也变多了,因此precision会振荡,但整体趋势是下降。

另外P-R曲线肯定会经过(0,0)点,比如讲所有的样本全部判为负例,则TP=0,那么P=R=0,因此会经过(0,0)点,但随着阈值点左移,precision初始很接近1,recall很接近0,因此有可能从(0,0)上升的线和坐标重合,不易区分。如果最前面几个点都是负例,那么曲线会从(0,0)点开始逐渐上升。

曲线最终不会到(1,0)点。很多P-R曲线的终点看着都是(1,0)点,这可能是因为负例远远多于正例。

最后一个点表示所有的样本都被判为正例,因此FN=0,所以recall = TP/(TP + FN) = 1, 而FP = 所有的负例样本数,因此precision = TP/(TP+FP) = 正例的占所有样本的比例,故除非负例数很多,否则precision不会为0.

因此,较合理的P-R曲线应该是(曲线一开始被从(0,0)拉升到(0,1),并且前面的都预测对了,全是正例,因此precision一直是1,)

另外,如果有个划分点可以把正负样本完全区分开,那么P-R曲线就是整个1*1的面积。

总之,P-R曲线应该是从(0,0)开始画的一条曲线,切割1*1的正方形,得到一块区域。

 

在进行比较时,若一个学习器A的P-R曲线被另一个学习器B的P-R曲线完全“包住”,则B的性能优于A。(这样看的话是不是曲线是1*1的正方形时性能最完美?)但是两个学习器的P-R曲线往往会发生交叉。这时候如何根据P-R曲线比较两个学习器的性能?

1、平衡点(BEP)

查准率=查全率时的取值,过(0,0)点的斜率为1的直线与P-B曲线的焦点坐标值。我们认为平衡点越靠近(1,1)则性能越好。

2、F1度量

F1 = (2×P×R)/(P+R)                                1/F1 = 1/P + 1/R

3、Fβ度量

Fβ = (1+β²)×P×R/(β²×P+R)                     1/Fβ = 1/(1+β²)(1/P + β²/R)

β>0度量查全率R对于查准率P的相对重要性,当β=1时即为F1度量,β>1时查全率有更大影响,β<1时查准率更重要。

 

N个混淆矩阵的P和R

如果有多次训练/测试、或者在多个数据集上训练/测试、或者多分类任务中每两两对应一个混淆矩阵,会有多个混淆矩阵。

宏查准率、宏查全率、宏F1:(先求值再平均)

 

 

微查准率、微查全率、微F1:(先平均再求值)

真正例率、假正例率

真正例率(True Positive Rate)TPR:在所有正例中预测为正例的比例

TPR = TP/(TP+FN)

假正例率(False Positive Rate)FPR:在所有反例中预测为正例的比例

FPR = FP/(TN+FP)

 

ROC曲线

ROC全称 接收者操作特征(receiver operating characteristic),横轴是FPR,纵轴是TPR。

假设已经得出一系列样本被划分为正类的概率(score),然后按照大小排序,测试样本数为n。接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了n组FPR和TPR的值,将它们画成ROC曲线。

与P-R图类似,如果一个学习器的ROC曲线被另一个学习器曲线完全“包住”,则可断言后者的性能优于前者。一般情况下用AUC(ROC曲线下的面积)来比较,AUC越大则性能越好。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值