AUC计算

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_27643275/article/details/89091364

参考:https://blog.csdn.net/u013385925/article/details/80385873

AUC是ROC曲线下的面积

首先,介绍一下ROC曲线的绘制

ROC曲线

ROC曲线的横轴表示真正例率FPR,纵轴表示假正例率FPR
T P R = T P T P + F N TPR = \frac{TP} {TP + FN} F P R = F P F P + T N FPR = \frac{FP} {FP + TN}

可以简化为如下形式:
T P R = T P P TPR = \frac{TP} {P} F P R = F P N FPR = \frac{FP} {N}
P表示所有样本中正例总数
N表示所有样本中负例总数
TP判断为正例的样本中判断正确的总数
FP判断为正例的样本中判断错误的总数


ROC曲线根据不同阈值下的TPR和FPR绘制,每个阈值对应一组TPR和FPR,即对应ROC曲线上的一点
在这里插入图片描述
阈值如何选取呢?

阈值依次取每个样本的score,即依次将每个样本判断为正例,计算TPR和FPR,绘制ROC曲线(具体步骤在下面)

AUC

AUC:随机选取一个正例和一个负例,正样本的score大于负样本score的概率。(score模型预测结果,将样本预测为正例的概率)
在这里插入图片描述
在这里插入图片描述
AUC是ROC曲线下的面积,可以通过计算曲线下面积估算,但算法麻烦,不可取。

计算方法:

在有限样本中我们常用的得到概率的办法就是通过频率来估计之。

取m个正例和n个负例,可以组成m * n个正负例对。考虑每一对正负例,若正例的预测值小于负例,则记1个罚分;若相等,记0.5个罚分。
r a n k = 1 m n x + D + x D ( I ( f ( x + ) < f ( x ) ) + 1 2 I ( f ( x + ) = f ( x ) ) ) \ell_{r a n k}=\frac{1}{m n} \sum_{\boldsymbol{x}^{+} \in D^{+}} \sum_{\boldsymbol{x}^{-} \in D^{-}}\left(\mathbb{I}\left(f\left(\boldsymbol{x}^{+}\right)<f\left(\boldsymbol{x}^{-}\right)\right)+\frac{1}{2} \mathbb{I}\left(f\left(\boldsymbol{x}^{+}\right)=f\left(\boldsymbol{x}^{-}\right)\right)\right)
A U C = 1  rank  \mathrm{AUC}=1-\ell_{\text { rank }}

实现



猜你喜欢

转载自blog.csdn.net/baidu_27643275/article/details/89091364
auc