AdaBoost算法思想及算法过程

一.算法思想

\quad\quad AdaBoost是一种特殊的Boosting族算法,它与众多的Boosting一族的算法的工作机制一致:先从初始训练样本中训练一个基学习器(也称弱学习器),再根据基学习器的表现对训练样本的分布进行调整,使得先前基学习器分类错误的样本在后续中受到更多的关注(即加大权重),然后基于调整后的样本分布来训练下一个基学习器,如此重复进行,直至基学习器的数量达到事先指定的值T,最终将这T个基学习器进行加权结合。

二.算法过程

给定训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\}
其中 x i X , y i { 1 , + 1 } x_i\in{X},y_i\in{\{-1,+1\}}
初始化训练样本权重 D 1 ( i ) = 1 m ( i = 1 , 2 , . . . , m ) D_1(i)=\frac{1}{m}(i=1,2,...,m)
for t = 1,2,…,T:
\quad 训练弱分类器 h t = ζ ( D , D t ) h_t=\zeta(D,D_t)
\quad 计算错误率 ϵ t = P r i D t ( h t ( x i ) y i ) \epsilon_t=P_{r_i\sim{D_t}}(h_t(x_i)\neq{y_i})
\quad 计算弱分类器的权重 α t = 1 2 l n ( 1 ϵ t ϵ t ) \alpha_t=\frac{1}{2}ln(\frac{1-\epsilon_t}{\epsilon_t})
\quad 更新训练样本的权重:
D t + 1 = D t ( i ) Z t × { e α t , h t ( x i ) = y i e α t , h t ( x i ) y i = D t ( i ) Z t e α t y i h t ( x i ) D_{t+1}=\frac{D_t(i)}{Z_t}\times\left\{ \begin{aligned} e^{-\alpha t},\quad h_t(x_i)=y_i\\ e^{\alpha t},\quad h_t(x_i)\neq{y_i} \end{aligned} \quad =\frac{D_t(i)}{Z_t}e^{-\alpha t y_i h_t(x_i)} \right.
输出结果 H f i n a l ( x i ) = s i g n ( t = 1 T α t h t ( x i ) ) H_{final}(x_i)=sign(\sum_{t=1}^{T}\alpha_th_t(x_i))

猜你喜欢

转载自blog.csdn.net/gaolijing_/article/details/103696584