(《机器学习》完整版系列)第8章 集成学习——8.5再谈投票法(硬投票:“同意”与“不同意”,软投票:同意张三70%,同意李四30%)

简单投票法的基学习器均以“ − 1 -1 1”或“ + 1 +1 +1”进行投票,现在我们让其以“0”或“1”进行投票,称为“硬投票”。包括:得票多的胜出、必须超过半数、加权投票
硬投票指要么“同意”要么“不同意”,而软投票是指“同意度”,即投票者把面额为1的票按自己的意愿分割到不同的候选者,如,同意张三70%,同意李四30%。

再谈投票法

硬投票

前述的基学习器均以“ − 1 -1 1”或“ + 1 +1 +1”进行投票,现在我们让其以“0”或“1”进行投票,称为“硬投票”。

设有 N N N类,类别标记集合为 { C 1 , C 2 , ⋯   , C N } \{C_1,C_2,\cdots,C_N\} {C1,C2,,CN},有 T T T个分类器 h i , ( i = 1 , 2 , ⋯   , T ) h_i,(i=1,2,\cdots,T) hi,(i=1,2,,T),对样本 x \boldsymbol{x} x的预测为 h i ( x ) = C j h_i(\boldsymbol{x})=C_j hi(x)=Cj。 预测统计生成表8.1。

本来是要将 x \boldsymbol{x} x分类到 { C 1 , C 2 , ⋯   , C N } \{C_1,C_2,\cdots,C_N\} {C1,C2,,CN}中,现在我们将 x \boldsymbol{x} x视为一张选票, h i h_i hi视为投票人,他要在选票上勾上候选人( C 1 , C 2 , ⋯   , C N C_1,C_2,\cdots,C_N C1,C2,,CN)之一,即 h i h_i hi x \boldsymbol{x} x的投票结果
h i j ( x ) = {   1   , 若 h i ( x ) = C j   0   , 若 h i ( x ) ≠ C j \begin{align} h_i^j(\boldsymbol{x})= \begin{cases} \, 1\, ,\qquad \text{若}h_i(\boldsymbol{x})=C_j \\ \, 0\, ,\qquad \text{若}h_i(\boldsymbol{x}) \neq C_j \end{cases} \tag{8.33} \end{align} hij(x)={1,hi(x)=Cj0,hi(x)=Cj(8.33)
体现在表8.1中的 h i h_i hi所在的行,表中每行(中间部分)是一个“独1向量”。 从列的角度看,第 j j j列为候选者 C j C_j Cj的得票情况,最后一行表示对每位候选者的记票结果。

投票人( h i , ( i = 1 , 2 , ⋯   , T ) h_i,(i=1,2,\cdots,T) hi,(i=1,2,,T))对 x \boldsymbol{x} x的集体决策记为 H ( x ) H(\boldsymbol{x}) H(x),不同的决策对应不同的游戏规则:

(1)得票多的胜出


max ⁡ { ∑ k = 1 T h k 1 ( x ) , ∑ k = 1 T h k 2 ( x ) , ⋯   , ∑ k = 1 T h k i ( x ) , ⋯   , ∑ k = 1 T h k N ( x ) } = ∑ k = 1 T h k j ( x ) \begin{align} \max\left\{\sum_{k=1}^Th_k^1(\boldsymbol{x}),\sum_{k=1}^Th_k^2(\boldsymbol{x}),\cdots,\sum_{k=1}^Th_k^i(\boldsymbol{x}),\cdots,\sum_{k=1}^Th_k^N(\boldsymbol{x})\right\} =\sum_{k=1}^Th_k^j(\boldsymbol{x}) \tag{8.34} \end{align} max{k=1Thk1(x),k=1Thk2(x),,k=1Thki(x),,k=1ThkN(x)}=k=1Thkj(x)(8.34)
H ( x ) = C j H(\boldsymbol{x})=C_j H(x)=Cj

通常以序号表示类别,即 C j = j C_j=j Cj=j,则该规则可以简单地表达为
H ( x ) = arg ⁡ max ⁡ { ∑ k = 1 T h k 1 ( x ) , ∑ k = 1 T h k 2 ( x ) , ⋯   , ∑ k = 1 T h k i ( x ) , ⋯   , ∑ k = 1 T h k N ( x ) } = arg ⁡ max ⁡ j ∑ k = 1 T h k j ( x ) \begin{align} H(\boldsymbol{x}) & =\mathop{\arg\max}\left\{\sum_{k=1}^Th_k^1(\boldsymbol{x}),\sum_{k=1}^Th_k^2(\boldsymbol{x}),\cdots,\sum_{k=1}^Th_k^i(\boldsymbol{x}),\cdots,\sum_{k=1}^Th_k^N(\boldsymbol{x})\right\}\notag \\ & =\mathop{\arg\max}\limits_j\sum_{k=1}^Th_k^j(\boldsymbol{x}) \tag{8.35} \end{align} H(x)=argmax{k=1Thk1(x),k=1Thk2(x),,k=1Thki(x),,k=1ThkN(x)}=jargmaxk=1Thkj(x)(8.35)

当类别不是直接以序号代表时,则式(8.35)变为【西瓜书式(8.25)】。

(2)必须超过半数(在(1)的基础上)

若式(8.34) > T 2 >\frac{T}{2} >2T,则预测 H ( x ) = C j H(\boldsymbol{x})=C_j H(x)=Cj,否则拒绝预测。

这即为【西瓜书式(8.24)】所表达的集成分类器,在该规则下,会出现“拒绝预测”的情况,这就是一些选举会出现流产情况。 另外,当为二分类时,(2)与(1)等价。

(3)加权投票

仍然是每人 h i h_i hi一张票,但汇总时,每人的权重不一样。 设 w i w_i wi h i h_i hi的权重( w i > 0 ,   ∑ i = 1 T w i = 1 w_i>0,\ \sum_{i=1}^Tw_i=1 wi>0, i=1Twi=1),则表8.1中最后一行的统计变为
∑ k = 1 T w k h k 1 ( x ) , ∑ k = 1 T w k h k 2 ( x ) , ⋯   , ∑ k = 1 T w k h k N ( x ) \sum_{k=1}^Tw_kh_k^1(\boldsymbol{x}),\sum_{k=1}^Tw_kh_k^2(\boldsymbol{x}),\cdots,\sum_{k=1}^Tw_kh_k^N(\boldsymbol{x}) k=1Twkhk1(x),k=1Twkhk2(x),,k=1TwkhkN(x)
则(1)的式(8.35)变为
H ( x ) = arg ⁡ max ⁡ j ∑ k = 1 T w k h k j ( x ) \begin{align} H(\boldsymbol{x}) & =\mathop{\arg\max}\limits_j\sum_{k=1}^Tw_kh_k^j(\boldsymbol{x}) \tag{8.36} \end{align} H(x)=jargmaxk=1Twkhkj(x)(8.36)
当类别不是直接以序号代表时,则式(8.36)变为【西瓜书式(8.26)】。

同样可以得到在(2)的约束下的预测公式。

用指示函数表达

利用指示函数(6、指示函数及应用(将分段函数表达成一个式子的技术)),则式(8.33)可表达为
h i j ( x ) = I ( j = h i ( x ) ) \begin{align} h_i^j(\boldsymbol{x})=\mathbb{I} (j=h_i(\boldsymbol{x})) \tag{8.37} \end{align} hij(x)=I(j=hi(x))(8.37)
其中,为简化以序号表示类别,即 C j = j C_j=j Cj=j

则“得票多者胜出”的式(8.35)变为
H ( x ) = arg ⁡ max ⁡ j ∑ k = 1 T I ( h k ( x ) = j ) = arg ⁡ max ⁡ y ∈ Y ∑ k = 1 T I ( h k ( x ) = y ) (换变量字母) \begin{align} H(\boldsymbol{x}) & =\mathop{\arg\max}\limits_j\sum_{k=1}^T\mathbb{I} (h_k(\boldsymbol{x})=j)\notag \\ & =\mathop{\arg\max}\limits_{y \in \mathcal{Y} }\sum_{k=1}^T\mathbb{I} (h_k(\boldsymbol{x})=y)\quad\text{(换变量字母)} \tag{8.38} \end{align} H(x)=jargmaxk=1TI(hk(x)=j)=yYargmaxk=1TI(hk(x)=y)(换变量字母)(8.38)
这即是【西瓜书图8.5】Bagging算法中的输出表达式。

设测试集为 T D T_D TD,仅考虑测试集上的预测,即
H T D ( x ) = {   H ( x )   , (若 x ∈ T D )   0   , (若 x ∉ T D ) = H ( x ) I ( x ∈ T D ) (由式(B5)) \begin{align} H^{T_D}(\boldsymbol{x}) & = \begin{cases} \, H(\boldsymbol{x})\, ,&\qquad \text{(若$\boldsymbol{x}\in {T_D}$)}\notag \\ \, 0\, ,&\qquad \text{(若$\boldsymbol{x}\notin {T_D}$)}\notag \\ \end{cases} \notag \\ & =H(\boldsymbol{x})\mathbb{I}(\boldsymbol{x}\in T_D)\qquad \text{(由式(B5))} \tag{8.39} \end{align} HTD(x)={H(x),0,(若xTD(若x/TD=H(x)I(xTD)(由式(B5)(8.39)
则它对 x \boldsymbol{x} x预测的误差损失
ϵ T D ( x ) = {   0   , 当 H T D ( x ) = f ( x ) 时   1   , 当 H T D ( x ) ≠ f ( x ) 时 = I ( H T D ( x ) ≠ f ( x ) ) (由式(B5)) \begin{align} {\epsilon}^{T_D} (\boldsymbol{x}) & = \begin{cases} \, 0\, ,\qquad \text{当$H^{T_D}(\boldsymbol{x})=f(\boldsymbol{x})$时}\notag \\ \, 1\, ,\qquad \text{当$H^{T_D}(\boldsymbol{x})\neq f(\boldsymbol{x})$时}\notag \\ \end{cases} \\ & =\mathbb{I}(H^{T_D}(\boldsymbol{x})\neq f(\boldsymbol{x}))\qquad \text{(由式(B5))} \tag{8.40} \end{align} ϵTD(x)={0,HTD(x)=f(x)1,HTD(x)=f(x)=I(HTD(x)=f(x))(由式(B5)(8.40)
则平均误差损失
ϵ T D = 1 ∣ T D ∣ ∑ x ∈ T D ϵ T D ( x ) = 1 ∣ T D ∣ ∑ x ∈ T D I ( H T D ( x ) ≠ f ( x ) ) (由式(8.40)) \begin{align} {\epsilon}^{T_D} & =\frac{1}{|T_D|}\sum_{\boldsymbol{x} \in T_D}{\epsilon}^{T_D} (\boldsymbol{x})\notag \\ & =\frac{1}{|T_D|}\sum_{\boldsymbol{x} \in T_D}\mathbb{I}(H^{T_D}(\boldsymbol{x})\neq f(\boldsymbol{x}))\qquad \text{(由式(8.40))} \tag{8.41} \end{align} ϵTD=TD1xTDϵTD(x)=TD1xTDI(HTD(x)=f(x))(由式(8.40)(8.41)
ϵ T D {\epsilon}^{T_D} ϵTD即为对 H ( x ) H(\boldsymbol{x}) H(x)的泛化性能的度量【西瓜书式(8.21)】。

软投票

硬投票指要么“同意”要么“不同意”,而软投票是指“同意度”,即投票者把面额为1的票按自己的意愿分割到不同的候选者,如,同意张三70%,同意李四30%。

则式(8.33)变为了概率表达
h i j ( x ) = P ( C j   ∣   x ) \begin{align} h_i^j(\boldsymbol{x})=P(C_j\,|\,\boldsymbol{x}) \tag{8.42} \end{align} hij(x)=P(Cjx)(8.42)
∑ j = 1 N P ( C j   ∣   x ) = 1 \sum_{j=1}^NP(C_j\,|\,\boldsymbol{x})=1 j=1NP(Cjx)=1,即投票人 h i h_i hi认为 x \boldsymbol{x} x以概率 P ( C j   ∣   x ) P(C_j\,|\,\boldsymbol{x}) P(Cjx)属于 C j C_j Cj类。

基于式(8.42),可以导出“得票多者胜出”、“必须过半数”、“加权胜出”等游戏决策下的表达式。

在软投票法下没有式(8.37),故基于式(8.37)的Bagging算法是基于硬投票的。 针对集成学习器 H ( x ) H(\boldsymbol{x}) H(x)的性能度量式(8.41),既适合于硬投票,也适合于软投票。

本文为原创,您可以:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值