博客园的内容值得一看。集成学习也被称为多分类器系统、基于委员会的学习,同质的个体学习器的集成是基学习器和基学习算法,异质的个体学习器称为组件学习器,虽然弱学习器(仅略优于随机猜测)集成性能已经很好,但实际上人们往往使用较强的基学习器。为了取得好的集成,个体学习器应该“好而不同”,即有一定准确性但必须有差异。假设有二分类任务 + 1 / − 1 +1/-1 +1/−1,基学习器 h i h_i hi的错误率是 ϵ \epsilon ϵ,集成分类根据 T T T个投票决定 H ( x ) = s i g n ( ∑ i = 1 T h i ( x ) ) H(x)=sign(\sum^T_{i=1}h_i(x)) H(x)=sign(∑i=1Thi(x)),即只要有 ⌊ T / 2 ⌋ \lfloor T/2 \rfloor ⌊T/2⌋个分类错误, H ( x ) H(x) H(x)就分类错误,根据 H o e f f d i n g Hoeffding Hoeffding不等式, H ( x ) H(x) H(x)分类错误的概率是 ∑ k = 0 ⌊ T / 2 ⌋ ( n k ) ( 1 − ϵ ) k ϵ T − k ≤ e x p ( − 1 2 T ( 1 − 2 ϵ ) 2 ) \sum_{k=0}^{\lfloor T/2 \rfloor}{n\choose k}(1-\epsilon)^k\epsilon^{T-k}\le exp(-\frac{1}{2}T(1-2\epsilon)^2) ∑k=0⌊T/2⌋(kn)(1−ϵ)kϵT−k≤exp(−21T(1−2ϵ)2),随着 T T T的增大,错误概率的上界将指数下降到 0 0 0,但这必须基于误差相互独立,实际并不可能如此。根据个体学习器的生成方式可分为必须序列化生成的方式(如 B o o s t i n g Boosting Boosting)和可并行生成的方式(如 B a g g i n g Bagging Bagging和 R F RF RF)
《机器学习》习题8.1中提到针对二项分布的 H o e f f d i n g Hoeffding Hoeffding不等式:发生事件的概率是 p p p,不发生概率是 1 − p 1-p 1−p, H ( n ) H(n) H(n)是 n n n次事件中发生 k k k次的概率( ∑ i = 0 k ( n i ) ( p ) i ( 1 − p ) n − i \sum_{i=0}^{k}{n\choose i}(p)^i(1-p)^{n-i} ∑i=0k(in)(p)i(1−p)n−i,对任意 δ > 0 , k = ( p − δ ) n \delta>0,k=(p-\delta)n δ>0,k=(p−δ)n,有不等式 P ( H ( n ) ≤ ( p − δ ) n ) ≤ e − 2 δ 2 n P(H(n)\le (p-\delta)n)\le e^{-2\delta^2n} P(H(n)≤(p−δ)n)≤e−2δ2n。这里只需将 n n n替换为 T T T, k = ( p − δ ) n k=(p-\delta)n k=(p−δ)n替换为 T / 2 T/2 T/2( ⌊ T / 2 ⌋ ≤ T / 2 \lfloor T/2 \rfloor\le T/2 ⌊T/2⌋≤T/2), p p p替换为 1 − ϵ 1-\epsilon 1−ϵ即可
对于有界随机变量的 H o e f f d i n g Hoeffding Hoeffding不等式:对于 n n n个独立的随机变量 X 1 , … , X N X_1,\dots,X_N X1,…,XN,假设 X i ∈ [ m i , M i ] X_i\in[m_i,M_i] Xi∈[mi,Mi],那么对于任意 t > 0 t>0 t>0,有不等式 P ∑ i = 1 N ( X i − E X i ) ≤ e x p ( − 2 t 2 ∑ i = 1 N ( M i − m i ) ) P\sum^{N}_{i=1}(X_i-EX_i)\le exp(-\frac{2t^2}{\sum_{i=1}^N(M_i-m_i)}) P∑i=1N(Xi−EXi)≤exp(−∑i=1N(Mi−mi)2t2),证明可以看这里
其他 H o e f f d i n g Hoeffding Hoeffding不等式变种,隐约感觉书中提到的二项分布的不等式和伯努利分布的那种有点关系,这里想了一会没推出来
B o o s t i n g Boosting Boosting序列化生成个体学习器,下一个学习器更侧重于上一个学习器错误分类的样本(通过为每个样本重赋权和重采样实现),最后的学习器是 T T T个学习器的加权组合,最著名的是 A d a B o o s t AdaBoost AdaBoost,它在每一轮训练之后都要检查基学习器是否满足基本要求(比如至少比随机猜测好),如果不满足就抛弃这一轮的学习器,并且学习过程停止,具体推导可以看这里和那两本书。 A d a B o o s t AdaBoost AdaBoost针对偏差-方差分解,更针对降低偏差(即提高拟合能力),因此对泛化能力很差的学习器能构建出很强的集成。《机器学习实战》第七章实现了这个算法,
为了“好而不同”中的不同,可以从原始训练样本采样出不同的训练子集来得到基学习器,这样可以有比较大的差异;为了避免“不同”中采样的数据太少而达不到“好”,可以使用相互交叠的采样子集。
B
a
g
g
i
n
g
Bagging
Bagging通过自助采样法产生训练集,得到基学习器后,分类任务投票,回归任务平均来产生最终分类器,它可并行效率高,且可容易推广到多分类和回归(标准
A
d
a
B
o
o
s
t
AdaBoost
AdaBoost只适用于二分类),且自助采样法还可以进行“包外估计”,
B
a
g
g
i
n
g
Bagging
Bagging针对偏差-方差分解,更针对降低方差(即降低过拟合),适合不剪枝的决策树和神经网络等易过拟合的模型集成。
R
F
RF
RF是基于决策树的
B
a
g
g
i
n
g
Bagging
Bagging的进一步优化,加入了随机属性选择(产生分支时不是从当前结点的所有属性集合
A
A
A中选最优属性,而是先随机选
k
k
k个属性(推荐
k
=
l
o
g
2
d
k=log_2d
k=log2d),再从这些属性中选最优属性,这样也使得训练效率比传统
B
a
g
g
i
n
g
Bagging
Bagging高),通过训练集采样的扰动和选择属性的扰动,进一步使得基学习器“不同”,使得
R
F
RF
RF性能非常好,被誉为“代表集成学习技术水平的方法”,尽管基学习器性能降低,但集成后的
R
F
RF
RF泛化误差会收敛到更低
集成学习有三个方面的优势:统计上看泛化能力提高,计算上看避免陷入局部极小,表示上看模型容量增大。对回归模型,集成策略可以是取基学习器的均值或者加权均值(权重一般从训练集学习得到),基学习器性能相差大可以用加权均值,相差不大用平均值即可,加权均值要学习的权重太多可能会过拟合。对分类模型,集成策略可以是绝对多数投票(选择超过一半的那个类别,如果都不超过一半就“拒绝预测”),相对多数投票(选择投票最多的那个类别),加权投票(加权后选择投票最多的那个类别)。上面讨论都是同质基学习器集成,如果是异质集成,不同类型的输出不能混用,需要经过一定转化。
训练数据很多可以采用“学习法”, S t a c k i n g Stacking Stacking就是典型代表,很多集成学习可视为其特例。它先从初始训练集得到初级学习器,再以初级学习器的输出作为次级学习器(也叫元学习器)的输入,初始训练集的标记仍然作为次级学习器的标记,这里是一些总结。
根据误差-分歧分解的公式,基学习器“好而不同”才能使集成较优,这里是一些“不同”程度的多样性度量方法,还有一些提高基学习器多样性的方法