深度解析roc曲线、AUC与排序损失

1、ROC曲线

ROC全称受试者工作特征,是用来研究学习器泛化性能的有力工具。ROC曲线横轴是假正利率FPR,纵轴是TPR,曲线的绘制过程是:根据学习器的预测结果对样例进行排序,按此顺序逐个把样例作为正例进行预测,计算出TPR和FPR,绘制ROC图。

  • ROC VS P-R

ROCPR
适用情况测试样本正负分布均匀测试样本正负分布不均匀(有明显差别)
对样本分布的敏感程度不敏感敏感
优点能够衡量一个模型本身的预测能力能够看出学习器随样本比例的变化的效果

「注」:先观察ROC曲线再观察PR曲线决定学习器的效果

2、AUC=1- ℓ \ell rank

  • ROC曲线绘制实例

已知一个学习器有以下预测结果:

s1,0.77,+s2,0.62,-s3,0.58,+s4,0.47,+
s5,0.47,-s6,0.33,-s7,0.23,+s8,0.15,-

ROC曲线横轴为 F P R = F P F P + T N FPR=\frac{{FP}}{{FP + TN}} FPR=FP+TNFP,纵轴为 T P R = T P T P + F N TPR=\frac{{TP}}{{TP + FN}} TPR=TP+FNTP,横轴纵轴的分母都是定值,分别为m_(反例个数),m+(正例个数),根据ROC的绘制过程可以看出每新增一个正例,ROC曲线水平上升一个单位,每新增一个反例,ROC曲线水平向右增加一个单位。最特殊的是上面例子中选定0.47作为正例阈值时,正例和反例各增加了一个,因此线段斜向上倾斜。

在这里插入图片描述

绘制过程如上图所示。

  • 证明AUC=1- ℓ \ell rank

现在已知排序损失定义为:

ℓ r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( I ( f ( x + ) < f ( x − ) ) + 1 2 I ( f ( x + ) = f ( x − ) ) ) \ell_{rank}=\frac{1}{m^+m^-}\sum_{\boldsymbol{x}^+ \in D^+}\sum_{\boldsymbol{x}^- \in D^-}\left(\mathbb{I}\left(f(\boldsymbol{x}^+)<f(\boldsymbol{x}^-)\right)+\frac{1}{2}\mathbb{I}\left(f(\boldsymbol{x}^+)=f(\boldsymbol{x}^-)\right)\right) rank=m+m1x+D+xD(I(f(x+)<f(x))+21I(f(x+)=f(x)))

试证明:AUC=1- ℓ \ell rank,也就是说明上述式子的含义是曲线上方的面积。

证明:
ℓ r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( ( f ( x + ) < f ( x − ) ) + 1 2 ( f ( x + ) = f ( x − ) ) ) = ∑ x + ∈ D + 1 m + ( 1 m − ∑ x − ∈ D − ( f ( x + ) < f ( x − ) ) ) + 1 2 ∑ x + ∈ D + 1 m + ( 1 m − ∑ x − ∈ D − ( f ( x + ) = f ( x − ) ) ) \begin{array}{l} {\ell _{rank}} = \frac{1}{{{m^ + }{m^ - }}}\sum\limits_{{{\bf{x}}^ + } \in {D^ + }} {\sum\limits_{{{\bf{x}}^ - } \in {D^ - }} {\left( {\left( {f({{\bf{x}}^ + }) < f({{\bf{x}}^ - })} \right) + \frac{1}{2}\left( {f({{\bf{x}}^ + }) = f({{\bf{x}}^ - })} \right)} \right)} } \\ {\rm{ }} = \sum\limits_{{{\bf{x}}^ + } \in {D^ + }} {\frac{1}{{{m^ + }}}\left( {\frac{1}{{{m^ - }}}\sum\limits_{{{\bf{x}}^ - } \in {D^ - }} {\left( {f({{\bf{x}}^ + }) < f({{\bf{x}}^ - })} \right)} } \right)} + \frac{1}{2}\sum\limits_{{{\bf{x}}^ + } \in {D^ + }} {\frac{1}{{{m^ + }}}\left( {\frac{1}{{{m^ - }}}\sum\limits_{{{\bf{x}}^ - } \in {D^ - }} {\left( {f({{\bf{x}}^ + }) = f({{\bf{x}}^ - })} \right)} } \right)} \end{array} rank=m+m1x+D+xD((f(x+)<f(x))+21(f(x+)=f(x)))=x+D+m+1(m1xD(f(x+)<f(x)))+21x+D+m+1(m1xD(f(x+)=f(x)))

  • 上面式子第一项解释:

针对每个被选入当作正例的正点,在它被选入之前,那些预测值大于它的反点已被选入正例,也就是ROC曲线上已经向右平移 1 m − ∑ x − ∈ D − ( f ( x + ) < f ( x − ) ) {\frac{1}{{{m^ - }}}\sum\limits_{{{\bf{x}}^ - } \in {D^ - }} {\left( {f({{\bf{x}}^ + }) < f({{\bf{x}}^ - })} \right)} } m1xD(f(x+)<f(x)) 个单位,再乘于高 1 m + {\frac{1}{{{m^ + }}}} m+1便得到每条绿色线段左边矩形的面积。

  • 上面式子第二项解释:

针对每个被选入当作正例的正点,当它选入时,可能会有一些反点和它预测值相同而被当作正例看待,因此ROC曲线上会同时向上、向右分别平移1个单位 ∑ x − ∈ D − ( f ( x + ) = f ( x − ) ) {\sum\limits_{{{\bf{x}}^ - } \in {D^ - }} {\left( {f({{\bf{x}}^ + }) = f({{\bf{x}}^ - })} \right)} } xD(f(x+)=f(x))单位,因此整体线段会斜向上延伸,如上图蓝色线段所示,多的三角形面积计算公式便为: 1 2 ∑ x + ∈ D + 1 m + ( 1 m − ∑ x − ∈ D − ( f ( x + ) = f ( x − ) ) ) \frac{1}{2}\sum\limits_{{{\bf{x}}^ + } \in {D^ + }} {\frac{1}{{{m^ + }}}\left( {\frac{1}{{{m^ - }}}\sum\limits_{{{\bf{x}}^ - } \in {D^ - }} {\left( {f({{\bf{x}}^ + }) = f({{\bf{x}}^ - })} \right)} } \right)} 21x+D+m+1(m1xD(f(x+)=f(x)))

因此: ℓ \ell rank=1-AUC


「参考」:

  1. https://www.jianshu.com/p/9d70c26b73a2
  2. https://github.com/datawhalechina/pumpkin-book
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值