回顾高考招生,分两步完成的,第一步,考试及阅卷(给样本打分);第二步,录取。本文以此趣例为背景,讨论:
1、学习器的P-R曲线:学习器P-R曲线越向右凸越好。
2、学习器的ROC曲线及曲线以下的面积AUC,学习器的AUC,越大越好;学习器ROC越向上/左凸越好。
3、ROC曲线画法。
高考的“打分器+录取器”
回顾高考招生,分两步完成的,第一步,考试及阅卷:通过试卷给每个学生打一个分数,这个可视为回归预测(给样本打分);第二步,录取。 现在我们做录取预测:在分数排序的基础上,根据需要的名额对“分数”进行划线“录取”,预测录取的样本即预测为正例,预测未录取的即预测为负例(亦称反例),与二分类器不同的是,这里仅通过分数线做录取预测,不妨称为录取器。 然而,实际的录取(样本的标记)又不仅仅看分数,例如,因志愿或体检原因使得高分未取(产生假正例),或因特长破格等原因使得低分录取了(产生假负例)。
二分类可以借鉴该方法,分为两步来实现:先用一个学习器进行回归预测,然后,再在分数排序的基础上进行划线分类,即二分类器=(回归)学习器+录取器。 对于一个学习器 h h h(实例化了的回归模型)确定的分数(排序),可以根据不同的录取数(或划线)得到不同的录取预测(通过录取器),这是个“一对多”的关系,借助这个关系,可以通过观察分数排序在各种录取额度上的表现来评价该学习器,这就是后续小节讨论的内容。 就像出好高考试卷对于录取质量至关重要,选择好的回归学习器对相应的二分类器也至关重要。
P-R曲线
设回归学习器(不妨称为打分器)对
m
m
m个测试样本进行了打分预测,按分数从高到低排序样本,设为
(
x
1
,
+
)
,
(
x
2
,
+
)
,
(
x
3
,
−
)
,
⋯
(
x
m
−
1
,
+
)
,
(
x
m
,
−
)
(1)
(\boldsymbol{x}_1,+),(\boldsymbol{x}_2,+),(\boldsymbol{x}_3,-),\cdots( \boldsymbol{x}_{m-1},+),(\boldsymbol{x}_m,-) \tag{1}
(x1,+),(x2,+),(x3,−),⋯(xm−1,+),(xm,−)(1)
其中,“
+
+
+”表示实际录取了,“
−
-
−”表示实际未录取。
现有一按分数“择优录取”的录取器,将上述排序分数输入录取器,并给定录取“名额”(不是指实际录取的名额,而是用于检验录取器的假定名额)作为超参数,由录取器进行录取预测。
假定给录取器的“名额”只有一个,则录取预测为
该预测结果再结合录取的实际(样本的标记)情况,则可以得到该测试集上的混淆矩阵,从而算出查全率 R R R和查准率 P P P,这是在一个录取名额下的计算,我们对度量指标添加下标表示“名额”,则这对度量数据可记为 ( R 1 , P 1 ) (R_1,P_1) (R1,P1)。
假定给录取器的“名额”为2,则录取预测为
则仿上述可计算 ( R 2 , P 2 ) (R_2,P_2) (R2,P2)。
逐步增加录取器的“名额”,则有 ( R 3 , P 3 ) , ( R 4 , P 4 ) , ⋯ , ( R m , P m ) (R_3,P_3),(R_4,P_4),\cdots,(R_m,P_m) (R3,P3),(R4,P4),⋯,(Rm,Pm)。
将 ( R 1 , P 1 ) , ( R 2 , P 2 ) , ⋯ , ( R m , P m ) (R_1,P_1),(R_2,P_2),\cdots,(R_m,P_m) (R1,P1),(R2,P2),⋯,(Rm,Pm)作为坐标系 O − R P O-RP O−RP(查全率 R R R为横轴,查准率 P P P为纵轴)中的点,连接这些点则得到该学习器的P-R曲线,它就是该学习器的一种度量。 【西瓜书图2.3】指出了学习器性能的比较方法:学习器越向右凸越好。
ROC曲线
基于混淆矩阵,我们定义真正例率及对应的假正例率,这样就又有了一对性能度量指标,如下:
{
假正例率:
F
P
R
=
F
P
m
−
真正例率:
T
P
R
=
T
P
m
+
(2)
\begin{cases} \text{假正例率:}\mathrm{FPR}=\frac{\mathrm{FP}}{m^-} \\ \text{真正例率:}\mathrm{TPR}=\frac{\mathrm{TP}}{m^+} \end{cases} \tag{2}
{假正例率:FPR=m−FP真正例率:TPR=m+TP(2)
其中,
m
+
m^+
m+和
m
−
m^-
m−分别表示样例中标记为正和负的样例数,在给定了测试集时,这两个数为常数,故上述两度量只与分子有关。 依前述规则,样本次序式(1)已定,可以逐一计算不同的录取名额之下这对指标式(2)的值,形成
(
m
+
1
)
(m+1)
(m+1)对值(对应名额从0到
m
m
m)。
在以假正例率 F P R \mathrm{FPR} FPR为横轴,以真正例率 T P R \mathrm{TPR} TPR为纵轴的坐标系中,上述每对值即为该坐标系中的一个点,连接这串点形成的曲线称为ROC曲线,该曲线以下的面积称为AUC,即【西瓜书图2.4】,利用ROC或AUC可以比较学习器性能。
另外,易得到这两对常用指标间的关系:
{
T
P
R
=
R
F
P
R
=
m
+
m
−
⋅
1
−
P
P
R
(3)
\begin{cases} \mathrm{TPR}={R }\\ \mathrm{FPR}=\frac{m^+}{m^-}\cdot\frac{1-{P}}{{P}}{R} \end{cases} \tag{3}
{TPR=RFPR=m−m+⋅P1−PR(3)
还可得到错误率与它们之间的关系:
错误率
E
r
=
F
P
+
F
N
m
=
F
P
+
m
+
−
T
P
m
E_{\mathrm{r}}=\frac{\mathrm{FP}+\mathrm{FN}}{m}=\frac{\mathrm{FP}+m^+-\mathrm{TP}}{m}
Er=mFP+FN=mFP+m+−TP
又
p
=
m
+
m
,
T
P
R
=
T
P
m
+
,
F
P
R
=
F
P
m
−
,
m
+
=
m
−
m
−
p=\frac{m^+}{m},\ \mathrm{TPR}=\frac{\mathrm{TP}}{m^+},\ \mathrm{FPR}=\frac{\mathrm{FP}}{m^-},\ m^+=m-m^-
p=mm+, TPR=m+TP, FPR=m−FP, m+=m−m−
故
E
r
=
(
1
−
p
)
F
P
R
+
p
(
1
−
T
P
R
)
(4)
E_{\mathrm{r}}=(1-p)\mathrm{FPR}+p(1-\mathrm{TPR}) \tag{4}
Er=(1−p)FPR+p(1−TPR)(4)
其中,
(
F
P
R
,
T
P
R
)
(\mathrm{FPR},\ \mathrm{TPR})
(FPR, TPR)为ROC曲线上的点。
ROC曲线画法
当录取名额为0时,即录取器认为样本没有正例,这时,混淆矩阵【西瓜书图2.1】的第一列全为0,即 T P = 0 , F P = 0 \mathrm{TP}=0,\quad \mathrm{FP}=0 TP=0,FP=0,由式(2),对应的点为(0,0);同样,当录取名额为 m m m时,即学习器认为样本全是正例 P P P,这时,正例全都预测正确(即 T P = m + \mathrm{TP}=m^+ TP=m+),负例全都预测错误(即假正例 F P = m − \mathrm{FP}=m^- FP=m−),由式(2),对应的点为(1,1)。 这两个点即为ROC的两个端点。
设录取名额为 k ( 0 ⩽ k < m ) k(0\leqslant k<m) k(0⩽k<m)时的点为 ( F P k m − , T P k m + ) (\frac{\mathrm{FP}_k}{m^-},\frac{\mathrm{TP}_k}{m^+}) (m−FPk,m+TPk),我们以此为基础求录取名额为 k + 1 k+1 k+1时的点,由于样本已排序,再多录取的一名样本即为 x k + 1 \boldsymbol{x}_{k+1} xk+1,即 k k k名额时的预测与 k + 1 k+1 k+1名额时的预测仅是该样本由负例改为正例,其余样本的预测保持不变。
- 当 x k + 1 \boldsymbol{x}_{k+1} xk+1实际标记为正例时,则增加了一名真正例,而假正例不变,故得到 x k + 1 \boldsymbol{x}_{k+1} xk+1时的点为 ( F P k m − , T P k + 1 m + ) (\frac{\mathrm{FP}_k}{m^-},\frac{\mathrm{TP}_k+1}{m^+}) (m−FPk,m+TPk+1),即在ROC上,从 k k k点走向 k + 1 k+1 k+1点是沿着纵轴前进 1 m + \frac{1}{m^+} m+1。
- 当 x k + 1 \boldsymbol{x}_{k+1} xk+1实际标记为负例时,则增加了一名假正例,而真正例不变,故得到 x k + 1 \boldsymbol{x}_{k+1} xk+1时的点为 ( F P k + 1 m − , T P k m + ) (\frac{\mathrm{FP}_k+1}{m^-},\frac{\mathrm{TP}_k}{m^+}) (m−FPk+1,m+TPk),即在ROC上,从 k k k点走向 k + 1 k+1 k+1点是沿着横轴前进 1 m − \frac{1}{m^-} m−1。
从上面的画法可知,一个学习器的ROC曲线为动点沿着网格线(每格的高度为 1 m + \frac{1}{m^+} m+1,宽度为 1 m − \frac{1}{m^-} m−1)从点(0,0)走向(1,1)的一条折线,即【西瓜书图2.4的右图】。 动点的行走方向受样本排序式(1)的约束,行走规则为:依样本排序式(1)从左至右,碰到实际标记为正例的样本则上前进 1 m + \frac{1}{m^+} m+1,碰到实际标记为负例的样本则向右前进 1 m − \frac{1}{m^-} m−1,简记为:“正上走、负右走”。
AUC面积
ROC曲线的型状决定AUC面积,下面我们讨论AUC与学习器性能的关系。
依前述ROC画图规则,假定动点已到达
k
k
k点
(
F
P
k
m
−
,
T
P
k
m
+
)
(\frac{\mathrm{FP}_k}{m^-},\frac{\mathrm{TP}_k}{m^+})
(m−FPk,m+TPk),这时ROC折线(局部)将
k
k
k点以下分为两部分
S
u
S_{\mathrm{u}}
Su(上部或左部)和
S
d
S_{\mathrm{d}}
Sd(下部或右部),如图1 所示。
这时,分数排名前 k k k个样本中,有 F P k \mathrm{FP}_k FPk个样本实际标记为负例, T P k \mathrm{TP}_k TPk个标记为正例。 动点继续行走,前述已讨论了下一个点( k + 1 k+1 k+1点)有两种情况:
(1)当 x k + 1 \boldsymbol{x}_{k+1} xk+1实际标记为正例时
动点是沿着纵轴前进
1
m
+
\frac{1}{m^+}
m+1,这时,
S
u
S_{\mathrm{u}}
Su增加“深灰阴影”部分,即增加的格子数为
F
P
k
\mathrm{FP}_k
FPk,刚好是
x
k
+
1
\boldsymbol{x}_{k+1}
xk+1前负例标记数,这些负例样本排在了正例样本
x
k
+
1
\boldsymbol{x}_{k+1}
xk+1之前,说明预测不准,排得越多(
F
P
k
\mathrm{FP}_k
FPk越大)则越不准,即该格子数可视为:出现正例
x
k
+
1
\boldsymbol{x}_{k+1}
xk+1时,由排在前的
F
P
k
\mathrm{FP}_k
FPk个负样本产生的对预测的“反对量”(图2的“深灰阴影”部分),即
F
P
k
\mathrm{FP}_k
FPk个矩形,用面积表示则为
F
P
k
⋅
(
1
m
+
⋅
1
m
−
)
\mathrm{FP}_k\cdot(\frac{1}{m^+}\cdot \frac{1}{m^-})
FPk⋅(m+1⋅m−1)
(2)当 x k + 1 \boldsymbol{x}_{k+1} xk+1实际标记为负例时
动点是沿着横轴前进
1
m
−
\frac{1}{m^-}
m−1,同样分析,出现负例
x
k
+
1
\boldsymbol{x}_{k+1}
xk+1时,由排在前的
T
P
k
\mathrm{TP}_k
TPk个正样本产生的对预测的“支持量”(图3的“深灰阴影”部分),即
T
P
k
\mathrm{TP}_k
TPk个矩形,用面积表示则为
T
P
k
⋅
(
1
m
+
⋅
1
m
−
)
\mathrm{TP}_k\cdot(\frac{1}{m^+}\cdot \frac{1}{m^-})
TPk⋅(m+1⋅m−1)
综上,动点沿ROC从(0,0)走向(1,1)过程中,每一步要么增加对“预测”的“反对量”,要么增加对“预测”的“支持量”,ROC的上部( S u S_{\mathrm{u}} Su)为“事实”(样本实际标记)对学习器预测(即排序式(1))的“反对量”(累计),而ROC的下部( S d S_{\mathrm{d}} Sd)则为“支持量”(累计)。 将“支持量”定义为该学习器的AUC,越大越好;将“反对量”定义为该学习器的损失,越小越好。 显然,学习器ROC越向上/左凸越好。
由前述可知,ROC的上部(
S
u
S_{\mathrm{u}}
Su)写成公式即为
S
u
=
∑
x
k
+
1
∈
D
+
1
m
+
⋅
1
m
−
⋅
F
P
k
(5)
S_{\mathrm{u}}=\sum_{\boldsymbol{x}_{k+1} \in D^+} \frac{1}{m^+}\cdot \frac{1}{m^-}\cdot \mathrm{FP}_k \tag{5}
Su=xk+1∈D+∑m+1⋅m−1⋅FPk(5)
由排序式(1)知,
F
P
k
=
∑
x
∈
D
−
I
(
h
(
x
)
>
h
(
x
k
+
1
)
)
(6)
\mathrm{FP}_k=\sum_{\boldsymbol{x} \in D^-}\mathbb{I} (h(\boldsymbol{x})>h(\boldsymbol{x}_{k+1})) \tag{6}
FPk=x∈D−∑I(h(x)>h(xk+1))(6)
式(6)代入式(5)并根据“和号”下面样本标记的限定,可将符号
x
k
+
1
\boldsymbol{x}_{k+1}
xk+1改写为
x
+
\boldsymbol{x}^+
x+,
x
\boldsymbol{x}
x改写为
x
−
\boldsymbol{x}^-
x−,则
S
u
=
1
m
+
⋅
1
m
−
∑
x
+
∈
D
+
∑
x
−
∈
D
−
I
(
h
(
x
−
)
>
h
(
x
+
)
)
(7)
S_{\mathrm{u}}=\frac{1}{m^+}\cdot \frac{1}{m^-}\sum_{\boldsymbol{x}^+ \in D^+}\sum_{\boldsymbol{x}^- \in D^-}\mathbb{I} (h(\boldsymbol{x}^-)>h(\boldsymbol{x}^+)) \tag{7}
Su=m+1⋅m−1x+∈D+∑x−∈D−∑I(h(x−)>h(x+))(7)
S
d
=
1
m
+
⋅
1
m
−
∑
x
+
∈
D
+
∑
x
−
∈
D
−
I
(
h
(
x
−
)
<
h
(
x
+
)
)
=
(小方形面积)
⋅
(满足
h
(
x
−
)
<
h
(
x
+
)
的小方形个数)
=
(满足
h
(
x
−
)
<
h
(
x
+
)
的面积占比)
(因总面积为1)
=
P
(
h
(
x
−
)
<
h
(
x
+
)
)
(由概率意义得)
即:AUC
=
P
(
h
(
x
−
)
<
h
(
x
+
)
)
\begin{align} S_{\mathrm{d}} & =\frac{1}{m^+}\cdot \frac{1}{m^-}\sum_{\boldsymbol{x}^+ \in D^+}\sum_{\boldsymbol{x}^- \in D^-}\mathbb{I} (h(\boldsymbol{x}^-)<h(\boldsymbol{x}^+)) \tag{8} \\ & =\text{(小方形面积)}\cdot\text{(满足$h(\boldsymbol{x}^-)<h(\boldsymbol{x}^+)$的小方形个数)}\notag \\ & =\text{(满足$h(\boldsymbol{x}^-)<h(\boldsymbol{x}^+)$的面积占比)}\qquad\text{(因总面积为1)}\notag \\ & =P(h(\boldsymbol{x}^-)<h(\boldsymbol{x}^+)) \qquad\text{(由概率意义得)}\notag \\ \text{即:AUC} & =P(h(\boldsymbol{x}^-)<h(\boldsymbol{x}^+)) \tag{9} \end{align}
Sd即:AUC=m+1⋅m−1x+∈D+∑x−∈D−∑I(h(x−)<h(x+))=(小方形面积)⋅(满足h(x−)<h(x+)的小方形个数)=(满足h(x−)<h(x+)的面积占比)(因总面积为1)=P(h(x−)<h(x+))(由概率意义得)=P(h(x−)<h(x+))(8)(9)
式(6)、式(8)是假定学习器
h
h
h对测试集中的样本打出不同分数的情况。 分数有相同的情况留待下一小节专门详细讨论。
【西瓜书图2.4】右图就是按上述方法画出的,将其平滑化后得到左图,AUC面积在左图中为若干竖方条的面积之和,而右图的AUC面积可将这些竖方条变为梯形来求近似值,这样就得到【西瓜书式(2.20)】。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:2.2 如何选个好模型?
下一篇:2.4 事情有点麻烦:你的分数与别人并列了!