(《机器学习》完整版系列)第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=1∑Thk1(x),k=1∑Thk2(x),⋯,k=1∑Thki(x),⋯,k=1∑ThkN(x)}=k=1∑Thkj(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=1∑Thk1(x),k=1∑Thk2(x),⋯,k=1∑Thki(x),⋯,k=1∑ThkN(x)}=jargmaxk=1∑Thkj(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=1∑Twkhk1(x),k=1∑Twkhk2(x),⋯,k=1∑TwkhkN(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=1∑Twkhkj(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=1∑TI(hk(x)=j)=y∈Yargmaxk=1∑TI(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,(若x∈TD)(若x∈/TD)=H(x)I(x∈TD)(由式(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=∣TD∣1x∈TD∑ϵTD(x)=∣TD∣1x∈TD∑I(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(Cj∣x)(8.42)
且
∑
j
=
1
N
P
(
C
j
∣
x
)
=
1
\sum_{j=1}^NP(C_j\,|\,\boldsymbol{x})=1
∑j=1NP(Cj∣x)=1,即投票人
h
i
h_i
hi认为
x
\boldsymbol{x}
x以概率
P
(
C
j
∣
x
)
P(C_j\,|\,\boldsymbol{x})
P(Cj∣x)属于
C
j
C_j
Cj类。
基于式(8.42),可以导出“得票多者胜出”、“必须过半数”、“加权胜出”等游戏决策下的表达式。
在软投票法下没有式(8.37),故基于式(8.37)的Bagging算法是基于硬投票的。 针对集成学习器 H ( x ) H(\boldsymbol{x}) H(x)的性能度量式(8.41),既适合于硬投票,也适合于软投票。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:8.4 GBDT算法(逐次估值逼近)
下一篇:8.6 级联集成(Stacking算法、其他级联)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)