Loading

机器学习-模型评估.3

详细案例解释ROC与AUC过程。

1.ROC与AUC评价

前面对ROC和AUC简单有了了解,只知道了他是用来评价学习器优劣的指标,这里来更详细记录下具体意义和求法。

在这里插入图片描述

图中曲线为ROC曲线,曲线下的面积的具体数值为AUC指标。

α越接近α0,分类器性能越好,当ROC曲线降到红线以下时,说明用这个分类器分,我还不如瞎分(瞎分二分类按正确率0.5算的话)

graph LR 学习器A-->评价 学习器B-->评价 评价-->ROC指标 ROC指标-->如果A与B的ROC曲线无交点 ROC指标-->如果A与B的ROC曲线有交点 如果A与B的ROC曲线有交点-->AUC值大的性能好 如果A与B的ROC曲线无交点-->能完全覆盖另一个的性能好

2.AUC值求取案例(理解原理)

样例 x5 x2 x7 x4 x1 x6 x3 x8 x9
y_true - + - - + - + + -
P(+) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

P(+):预测为+的概率

PS:使用这个表时,需要按照概率首先将样例重新排列。

求解:

第一次:

- + - - + - + + -
1测 - - - - - - - - -

TPR=0/4=0 FPR=0/5=0 (公式自行查询)

第二次:

- + - - + - + + -
2测 + - - - - - - - -

TPR=0/4=0 FPR=1/5=0.2

循环...直到测试全为+的时候停

第n次:

- + - - + - + + -
n测 + + + + + + + + +

TPR=4/4=1 FPR=5/5=1

根据以上TPR和FPR分别作为xy轴 画图得到:

在这里插入图片描述

具体面积的值就是AUC啦。

3.四种求AUC方法

3.1 定义法

类似求定积分,将阴影面积拆成一个一个的长方形,求每一块的面积,然后求和。

3.2 排序损失法

AUC是样本预测的排序质量的一种判断标准,因此与排序误差紧密联系。比如给了m+个正例和m-个负例,D+D-分别表示正反例集合,那么排造成的Loss为:

\[l^{rank}=\frac{1}{m^+m^-}\sum_{x^+\in D^+}\sum_{x^-\in D^-}(II(f(x^+)<f(x^-))+\frac{1}{2}II(f(x^+)=f(x^-))) \]

乍一看,看不懂,说人话就是,看这个表:

样例 x5 x2 x7 x4 x1 x6 x3 x8 x9
y_true - + - - + - + + -
P(+) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

+:x2,x1,x3,x8 四个

-:x5,x7,x4,x6,x9 五个

第一次取x2和x5 => 0.9>0.8 => 记罚分 1.0

第二次取x2和x7 => 0.8<0.7 => 记罚分 0.0

第三次取x2和x4...

记录4*5=20次罚分求和/20得到Loss值。

最后:

\[AUC = 1-l^{rank} \]

3.3 排序收益法

和排序损失法对应,不过不是记录罚分,而是计算收益,最后的公式为

\[l^{rank}=\frac{1}{m^+m^-}\sum_{x^+\in D^+}\sum_{x^-\in D^-}(II(f(x^+)>f(x^-))+\frac{1}{2}II(f(x^+)=f(x^-))) \]

\[AUC = l^{rank} \]

3.4 排序法

理解了上面几个方法,这个就直接看公式理解吧:

\[AUC=\frac{\sum_{i=1}^{n_0}{r_i-n_0(n_0+1)/2}}{n_0n_1} \]

\(n_0\)\(n_1\)分别为负例正例样本个数。

\(r_i\)表示按照概率大到小排序后第r个位置。

还不懂的话,直接看个例子吧:

ID Label P(+|x) rank
X4 + 0.8 1
X2 - 0.4 2
X3 + 0.3 3
X1 - 0.1 4

\[AUC=\frac{2+4-2*(2+1)/2}{2*2}=\frac{3}{4}=0.75 \]

posted @ 2024-09-19 12:17  绯色鱼  阅读(63)  评论(0)    收藏  举报