(《机器学习》完整版系列)第2章 模型评估与选择 ——2.5 代价的曲线美

学习器(打分器)既产生ROC曲线【西瓜书图2.4】,又产生代价曲线【西瓜书图2.5】。 代价曲线(常将错误率称为代价),代价曲线为一种特殊的直线簇的包络。
评价模型时, ROC下的面积AUC越大越好,代价曲线下的面积越小越好。
我们还可得到非均等代价下相应的ROC曲线和代价曲线。

代价曲线

错误率与代价曲线

前面我们得到了学习器(打分器) h h h的ROC曲线,ROC上的任何一个点 R R R对应于一个二分类器 h R h_{\mathrm{R}} hR,现在我们转换为以一条直线来代表这个二分类器。 ROC上任一点 R ( F P R , T P R ) R(\mathrm{FPR},\mathrm{TPR}) R(FPR,TPR),拆成另一坐标系下的两点 A ( 0 , F P R ) A(0,\mathrm{FPR}) A(0,FPR) B ( 1 , 1 − T P R ) B(1,1-\mathrm{TPR}) B(1,1TPR),由 A A A B B B两点确定一条直线 l R l_{\mathrm{R}} lR即为所求,如图1所示。
图1 二分类器对应的直线

图1 二分类器对应的直线

我们再考察直线 l R l_{\mathrm{R}} lR上的点(如, Q Q Q点),由直线的参数方程知
Q = λ B + ( 1 − λ ) A (1) Q=\lambda B+(1-\lambda)A \tag{1} Q=λB+(1λ)A(1)
其中,有 A ( 0 , F P R ) A(0,\mathrm{FPR}) A(0,FPR) B ( 1 , 1 − T P R ) B(1,1-\mathrm{TPR}) B(1,1TPR)

现将该二分类器 h R h_{\mathrm{R}} hR应用于某二类样本空间 Q \mathcal{Q} Q,设该空间中正例的概率为 p p p,则采样得到的测试集中(近似)有 m + m = p \frac{m^+}{m}=p mm+=p ,其中, m m m为测式集中样本总数, m + m^+ m+为其正例数,由混淆矩阵知,错误率为
E r = F N + F P m = F N m + ⋅ m + m + F P m − ⋅ m − m = F N R ⋅ p + F P R ⋅ ( 1 − p ) \begin{align} E_{\mathrm{r}} & =\frac{\mathrm{FN}+\mathrm{FP}}{m}\notag \\ & =\frac{\mathrm{FN}}{m^+}\cdot\frac{m^+}{m}+\frac{\mathrm{FP}}{m^-}\cdot\frac{m^-}{m}\notag \\ & =\mathrm{FNR}\cdot p+\mathrm{FPR}\cdot (1-p) \tag{2} \end{align} Er=mFN+FP=m+FNmm++mFPmm=FNRp+FPR(1p)(2)
结合图1,比较式(1)与式(2),若令 λ = p \lambda=p λ=p,则 Q Q Q点为 ( p , E r ) (p,E_{\mathrm{r}}) (p,Er),即图1中线段 A B AB AB(对应 h R h_{\mathrm{R}} hR)上的点 Q Q Q表达了 h R h_{\mathrm{R}} hR在样本空间 Q \mathcal{Q} Q(正例概率为 p p p)中的性能(错误率 E r E_{\mathrm{r}} Er)。 点 Q Q Q A B AB AB上移动,反映了 h R h_{\mathrm{R}} hR在各种 p p p下的性能。

现在我们换一个视角:在图1中建立xoy坐标系,设 F N R = a , F P R = b \mathrm{FNR}=a,\mathrm{FPR}=b FNR=a,FPR=b,则有
l R : y = a x + ( 1 − x ) b ( 0 ⩽ x ⩽ 1 ) (3) l_{\mathrm{R}}:\qquad y=ax+(1-x)b\quad(0\leqslant x\leqslant 1) \tag{3} lR:y=ax+(1x)b(0x1)(3)

而在原坐标系下,ROC曲线上的点 R ( F P R , T P R ) R(\mathrm{FPR},\mathrm{TPR}) R(FPR,TPR)即为R ( b , 1 − a ) (b,1-a) (b,1a),它应满足ROC曲线方程, R R R的坐标代入,解出的关系式设为
C R O C : b = f ( a ) ( 0 ⩽ a ⩽ 1 ) (4) C_{\mathrm{ROC}}:\qquad b=f(a)\quad(0\leqslant a\leqslant 1) \tag{4} CROC:b=f(a)(0a1)(4)

由式(4)与式(3)的对应关系知:让点 R R R C R O C C_{\mathrm{ROC}} CROC上运动,则线 l R l_{\mathrm{R}} lR对应地变化,形成一直线簇 { l 1 , l 2 , l 3 , ⋯   } \{l_1,l_2,l_3,\cdots\} {l1,l2,l3,},取 x = x 0 x=x_0 x=x0,则在直线簇中得到一串点 y 1 , y 2 , y 3 , ⋯ y_1,y_2,y_3,\cdots y1,y2,y3,,如图2所示。
图2 ROC对应的直线簇

图2 ROC对应的直线簇]

y 0 = min ⁡ { y 1 , y 2 , y 3 , ⋯   } y_0=\min \{y_1,y_2,y_3,\cdots\} y0=min{y1,y2,y3,},则由式(4)与式(3),有
y 0 = min ⁡ b = f ( a )   a x 0 + ( 1 − x 0 ) b = min ⁡ 0 ⩽ a ⩽ 1   a x 0 + ( 1 − x 0 ) f ( a ) \begin{align*} y_0 & =\min _{\substack{b=f(a)}}\ ax_0+(1-x_0)b\notag \\ & =\min_{\substack{0\leqslant a\leqslant 1}}\ ax_0+(1-x_0)f(a) \tag{5} \end{align*} y0=b=f(a)min ax0+(1x0)b=0a1min ax0+(1x0)f(a)(5)
注:机器学习中将优化的“目标函数”作为一个整体,故 min ⁡ \min min max ⁡ \max max通常会省掉后面整个式子的括号,如,以 f ( x ) + g ( x ) f(x)+g(x) f(x)+g(x)为目标函数时,记 max ⁡   f ( x ) + g ( x ) = max ⁡ ( f ( x ) + g ( x ) ) \max\ f(x)+g(x) = \max(f(x)+g(x) ) max f(x)+g(x)=max(f(x)+g(x)),后续作为机器学习领域的习惯,不再进行说明。

上式的结果消去了 a a a,不妨记为 g ( x 0 ) g({x}_0) g(x0),即
y 0 = g ( x 0 ) (6) y_0=g({x}_0) \tag{6} y0=g(x0)(6)

由字符的意义(式(2)中的 p p p即为式(3)中的 x x x),故式(6)表示在概率 p = x 0 p=x_0 p=x0下,最小的错误率 E r = y 0 E_{\mathrm{r}}=y_0 Er=y0,让 x 0 x_0 x0变化,则形成函数,将式(6)中的字母更换为表示变量的字母,即
y = g ( x ) (7) y=g({x}) \tag{7} y=g(x)(7)

式(7)形成的曲线称为代价曲线(常将错误率称为代价),从前面的分析可知,代价曲线为直线簇的包络【西瓜书图2.5】。

综上,学习器(打分器)既产生ROC曲线【西瓜书图2.4】,又产生代价曲线【西瓜书图2.5】。 ROC下的面积AUC越大越好,代价曲线下的面积越小越好。

非均等代价

前述是在均等代价下讨论的,下面我们讨论在非均等代价下的情况.

对于二分类结果我们有混淆矩阵【西瓜书表2.1】,如果我们对其损失进行“计价”:预报准确损失为0,预报不对的给一个失损值。 代价矩阵就是一个“单价表”【西瓜书表2.2】。 为配合矩阵元素下标将二类的正例和负例改称为0类和1类。

可以将这两个表“并”在一起,混淆矩阵当作“重量”,代价矩阵视为“单价”,就可以计算“四件物品”(表中四个格子)的“总价格”。 然而,通常“预报准确”物品的“单价”为 0,故实际只对预测错误的样本进行计价,即为
T a l l _ C o s t = F N ⋅ c o s t 01 + F P ⋅ c o s t 10 \mathrm{Tall\_Cost}=\mathrm{FN}\cdot \mathrm{cost}_{01}+\mathrm{FP}\cdot \mathrm{cost}_{10} Tall_Cost=FNcost01+FPcost10

将总代价分摊到测试集的所有样本头上,得如下式:
T a l l _ C o s t m = 1 m [ F N ⋅ c o s t 01 + F P ⋅ c o s t 10 ] (8) \frac{\mathrm{Tall\_Cost}}{m}=\frac{1}{m}[\mathrm{FN}\cdot \mathrm{cost}_{01}+\mathrm{FP}\cdot \mathrm{cost}_{10}] \tag{8} mTall_Cost=m1[FNcost01+FPcost10](8)
式(8)的右边当 c o s t 01 \mathrm{cost}_{01} cost01 c o s t 10 \mathrm{cost}_{10} cost10都为1时,正好是错误率,因此,该式可视为带“权重”的错误率,称为“代价敏感”错误率,即
E ( h ; D ; c o s t ) = 1 m [ F N ⋅ c o s t 01 + F P ⋅ c o s t 10 ] (9) E(h;D;\mathrm{cost})=\frac{1}{m}[\mathrm{FN}\cdot \mathrm{cost}_{01}+\mathrm{FP}\cdot \mathrm{cost}_{10}] \tag{9} E(h;D;cost)=m1[FNcost01+FPcost10](9)
式(9)中的 E E E表示错误率,它与分类器 h h h、测试集 D D D以及代价矩阵 c o s t \mathrm{cost} cost相关。 将FN和FP写成“计数”形式,则变为【西瓜书式(2.23)】。
对于式(9)我们仿式(2)的推导,有
E ( h ; D ; c o s t ) = F N R ⋅ c o s t 01 ⋅ p + F P R ⋅ c o s t 10 ⋅ ( 1 − p ) \begin{align} E(h;D;\mathrm{cost})=\mathrm{FNR}\cdot \mathrm{cost}_{01}\cdot p+\mathrm{FPR}\cdot \mathrm{cost}_{10}\cdot (1-p) \tag{10} \end{align} E(h;D;cost)=FNRcost01p+FPRcost10(1p)(10)

然而,与式(2)不同的是式(10)中 E ( h ; D ; c o s t ) E(h;D;\mathrm{cost}) E(h;D;cost)的范围不一定在区间[0,1]中,好在我们可以通过 max ⁡ − min ⁡ \max -\min maxmin归一化公式(见【西瓜书式(2.43)】),这里使用该式时,取 min ⁡ E = 0 ,   max ⁡ E = max ⁡   F N R ⋅ c o s t 01 ⋅ p + F P R ⋅ c o s t 10 ⋅ ( 1 − p ) = c o s t 01 ⋅ p + c o s t 10 ⋅ ( 1 − p ) \min E=0,\ \max E=\max \ \mathrm{FNR}\cdot \mathrm{cost}_{01}\cdot p+\mathrm{FPR}\cdot \mathrm{cost}_{10}\cdot (1-p) =\mathrm{cost}_{01}\cdot p+\mathrm{cost}_{10}\cdot (1-p) minE=0, maxE=max FNRcost01p+FPRcost10(1p)=cost01p+cost10(1p)
转化到这个范围,这时 E ( h ; D ; c o s t ) E(h;D;\mathrm{cost}) E(h;D;cost)记为 c o s t n o r m \mathrm{cost}_{\mathrm{norm}} costnorm,即得【西瓜书式(2.25)】,进一步变形:
c o s t n o r m = F N R ⋅ c o s t 01 ⋅ p + F P R ⋅ c o s t 10 ⋅ ( 1 − p ) c o s t 01 ⋅ p + c o s t 10 ⋅ ( 1 − p ) = F N R ⋅ [ c o s t 01 ⋅ p c o s t 01 ⋅ p + c o s t 10 ⋅ ( 1 − p ) ] + F P R ⋅ [ c o s t 10 ⋅ ( 1 − p ) c o s t 01 ⋅ p + c o s t 10 ⋅ ( 1 − p ) ] = F N R ⋅ P + + F P R ⋅ P − (两中括号之和为1,引入记号 P + 与 P − ) = F N R ⋅ P + + F P R ⋅ ( 1 − P + ) %\begin{small} \begin{align} \mathrm{cost}_{\mathrm{norm}} & =\frac{\mathrm{FNR}\cdot \mathrm{cost}_{01}\cdot p+\mathrm{FPR}\cdot \mathrm{cost}_{10}\cdot (1-p)}{\mathrm{cost}_{01}\cdot p+\mathrm{cost}_{10}\cdot (1-p)}\notag \\ & =\mathrm{FNR}\cdot\left[\frac{ \mathrm{cost}_{01}\cdot p}{\mathrm{cost}_{01}\cdot p+\mathrm{cost}_{10}\cdot (1-p)}\right]+\mathrm{FPR}\cdot\left[\frac{ \mathrm{cost}_{10}\cdot (1-p)}{\mathrm{cost}_{01}\cdot p+\mathrm{cost}_{10}\cdot (1-p)}\right]\notag \\ & =\mathrm{FNR}\cdot P^++\mathrm{FPR}\cdot P^- \qquad \text{(两中括号之和为1,引入记号$P^+$与$P^-$)}\notag \\ & =\mathrm{FNR}\cdot P^++\mathrm{FPR}\cdot(1-P^+) \tag{11} \end{align} %\end{small} costnorm=cost01p+cost10(1p)FNRcost01p+FPRcost10(1p)=FNR[cost01p+cost10(1p)cost01p]+FPR[cost01p+cost10(1p)cost10(1p)]=FNRP++FPRP(两中括号之和为1,引入记号P+P=FNRP++FPR(1P+)(11)
这样,式(11)就与式(2)形式上完全一致,我们就可以仿前述进行相关的推导,如: Q Q Q点由 ( p , E r ) (p,E_{\mathrm{r}}) (p,Er)变为 ( P + ,   c o s t n o r m ) (P^+,\ \mathrm{cost}_{\mathrm{norm}}) (P+, costnorm),得到非均等代价下相应的ROC曲线和代价曲线,这里就不一一重复了。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:2.4 事情有点麻烦:你的分数与别人并列了!
下一篇:2.6 机器学习中的性能好,不是指“快”而是指“准”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值