[学习记录] Boosting和Bagging
Boosting | Bagging |
---|---|
基学习器 | 基学习器 |
互相强依赖 | 互相无依赖 |
串行 | 并行 |
H ( x ) = ∑ t = 1 T α t h t ( x ) H(x)=\sum_{t=1}^{T}\alpha_{t}h_{t}(x) H(x)=t=1∑Tαtht(x) | H ( x ) = arg min y ∈ Υ ∑ t = 1 T I ( h t ( x ) = y ) H(x)=\mathop{\arg\min}_{y \in \Upsilon } \sum_{t=1}^{T}\mathbb{I}(h_{t}(x)=y) H(x)=argminy∈Υt=1∑TI(ht(x)=y) |
对于训练,两种数据重构方式 re-weighting和re-sampling | 一般都使用re-sampling,所以有了随机森林 |
re-weighting可能问题:AdaBoost算法每一轮都要检查基学习器是否满足比随机猜测好,一旦不满足就停止训练,可能远未达到设定的学习轮数,导致生成的学习器种类少、效果差 | 优点:时间复杂度T(O(m)+O(s)),决策部分O(s)可以忽略不记,基本与基学习器同阶 |
re-sampling每次都要新抽样,相当于重新训练,不会出现训练过程中过早停止的情况 | 优点:标准AdaBoost只适用于二分类,Bagging能不做调整用于多分类、回归等问题。 |
更关注降低偏差,因此Boosting能基于泛化性能相当弱的学习器构建出很强的集成 | 更关注降低方差,因此它在不剪枝决策树、神经网络等易受样本干扰的学习器上效果好 |
设定每一个基学习器的方差为 δ 2 \delta^{2} δ2,当两两基学习器相关性为 ρ \rho ρ时,n个随机变量的方差为 ρ ∗ δ 2 + ( 1 − ρ ) ∗ δ 2 / 2 \rho*\delta^{2}+(1-\rho)*\delta^{2}/2 ρ∗δ2+(1−ρ)∗δ2/2,特别的,当两两不相关时,为 δ 2 / n \delta^{2}/n δ2/n,直接是原来的1/n |