如有问题欢迎交流
1.ROC与AUC评价
前面对ROC和AUC简单有了了解,只知道了他是用来评价学习器优劣的指标,这里来更详细记录下具体意义和求法。
图中曲线为ROC曲线,曲线下的面积的具体数值为AUC指标。
α越接近α0,分类器性能越好,当ROC曲线降到红线以下时,说明用这个分类器分,我还不如瞎分(瞎分二分类按正确率0.5算的话)
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
r
a
n
k
=
1
m
+
m
−
∑
x
+
∈
D
+
∑
x
−
∈
D
−
(
I
I
(
f
(
x
+
)
<
f
(
x
−
)
)
+
1
2
I
I
(
f
(
x
+
)
=
f
(
x
−
)
)
)
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^-)))
lrank=m+m−1x+∈D+∑x−∈D−∑(II(f(x+)<f(x−))+21II(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值。
最后:
A
U
C
=
1
−
l
r
a
n
k
AUC = 1-l^{rank}
AUC=1−lrank
3.3 排序收益法
和排序损失法对应,不过不是记录罚分,而是计算收益,最后的公式为
l
r
a
n
k
=
1
m
+
m
−
∑
x
+
∈
D
+
∑
x
−
∈
D
−
(
I
I
(
f
(
x
+
)
>
f
(
x
−
)
)
+
1
2
I
I
(
f
(
x
+
)
=
f
(
x
−
)
)
)
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^-)))
lrank=m+m−1x+∈D+∑x−∈D−∑(II(f(x+)>f(x−))+21II(f(x+)=f(x−)))
A U C = l r a n k AUC = l^{rank} AUC=lrank
3.4 排序法
理解了上面几个方法,这个就直接看公式理解吧:
A
U
C
=
∑
i
=
1
n
0
r
i
−
n
0
(
n
0
+
1
)
/
2
n
0
n
1
AUC=\frac{\sum_{i=1}^{n_0}{r_i-n_0(n_0+1)/2}}{n_0n_1}
AUC=n0n1∑i=1n0ri−n0(n0+1)/2
n0,n1分别为负例正例样本个数。
ri表示按照概率大到小排序后第r个位置。
还不懂的话,直接看个例子吧:
ID | Label | P(+|x) | rank |
---|---|---|---|
X4 | + | 0.8 | 1 |
X2 | - | 0.4 | 2 |
X3 | + | 0.3 | 3 |
X1 | - | 0.1 | 4 |
A U C = 2 + 4 − 2 ∗ ( 2 + 1 ) / 2 2 ∗ 2 = 3 4 = 0.75 AUC=\frac{2+4-2*(2+1)/2}{2*2}=\frac{3}{4}=0.75 AUC=2∗22+4−2∗(2+1)/2=43=0.75