AUC及ROC曲线详解

机器学习中分类模型的常用指标

准确率、精确率、召回率、F1-score


TP(True Positive): 真实是正样本,预测结果也是正样本的数量
FN(False Negative): 真实是正样本,预测结果是负样本的数量
TN(True Negative): 真实是负样本,预测结果也是负样本
FP(False Postive): 真实是负样本,预测结果是正样本

准确率(Accuracy):衡量所有样本被正确分类的比例:
A c c u r a c y = ( T P + T N ) T P + F P + T N + F N Accuracy= \frac{(TP+TN)}{TP+FP+TN+FN} Accuracy=TP+FP+TN+FN(TP+TN)

精确率(Precision): 也叫查准率,衡量正样本的分类准确率,就是说倍预测为正样本的样本有多少是真的正样本。
P r e c i s i o n = T P T P + F P Precision= \frac{TP}{TP+FP} Precision=TP+FPTP
召回率(Recall): 表示分类正确的正样本占总的分类正确样本的比例
R e c a l l = T P T P + F N Recall= \frac{TP}{TP+FN} Recall=TP+FNTP
F-1-score: 精确率和召回率的调和平均
2 F 1 = 1 P + 1 R \frac{2}{F1}= \frac{1}{P}+\frac{1}{R} F12=P1+R1
所以
F 1 = 2 P R P + R = 2 T P 2 T P + F P + T N F1=\frac{2PR}{P+R}=\frac{2TP}{2TP+FP+TN} F1=P+R2PR=2TP+FP+TN2TP
可以看到,在上式里我们认为精确率和召回率是一样重要的(他们的权重一样),当我们的评估更加注重精确率或者召回率的时候,该怎么处理呢?
我们引入 Fβ ,对于任意的非负值β,我们定义
F β = ( β 2 + 1 ) × P R β 2 × ( P + R ) Fβ=(β^2+1)×\frac{PR}{β^2×(P+R)} Fβ=β2+1×β2×P+RPR
可以看到,我们可以通过调整 β 来帮助我们更好地评估结果。

最好的分类器当然是准确率、精确率,召回率都为1,但实际场景中几乎是不可能的,而且精确率和召回率往往会相互影响,一个高了另一个会有所下降,因此在实际应用中要根据具体需求做适当平衡。

ROC曲线和AUC面积

ROC曲线

ROC曲线横坐标是FPR(False Positive Rate),纵坐标是TPR(True Positive Rate)
F P R = F P F P + T N , T P R = T P T P + F N FPR=\frac{FP}{FP+TN}, TPR=\frac{TP}{TP+FN} FPR=FP+TNFP,TPR=TP+FNTP
接下来我们考虑ROC曲线图中的四个点和一条线。第一个点,(0,1),即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。Wow,这是一个完美的分类器,它将所有的样本都正确分类。第二个点,(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。第三个点,(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。类似的,第四个点(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,我们可以断言,ROC曲线越接近左上角,该分类器的性能越好。
ROC曲线是由一系列因区分阈值变化产生的点,用于描述二分类模型的判断能力
当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑

AUC面积

AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

  AUC应该理解为对随机取出一个正样本和一个负样本,模型预测正样本为正样本的概率大于预测负样本为正样本的概率的概率值。

可能不太好理解这句话,那我们还是用上面的例子来说明,假设二分类模型A要找到所有正样本,对20个样本的预测概率根据概率值大小得到一个排序,我们希望有尽可能多的正样本排在负样本前面,最好的模型当然是所有的正样本都排在负样本前,但这种分类器要不就是过拟合要不就不存在,当有越多正样本排在负样本前的时候,我们得到的ROC曲线上的点的分布会越靠近y轴(FPR=0)和y=1(TPR=1)这两条线,显然这时候曲线下的面积值(AUC) 会越接近于1,这个时候我们再看上面对AUC的理解这句话,随机取出一个正样本和一个负样本,
如果auc值大,当然会有更多的正样本被更大概率预测准确,负样本被预测为正样本的概率也会越小。
既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值