一般地说,Adaboost中每个弱分类器都是单层决策树。
基本思想如下:
- 第一步使得所有样本点等权重,寻找最优的判定阈值 θ 1 \theta_1 θ1和分类方法(方向,也即大于该阈值为+1还是小于该阈值为+1)。在该单层决策树下得到误差 ϵ 1 \epsilon_1 ϵ1。使用 ϵ 1 \epsilon_1 ϵ1可以计算出该分类器在最后所有分类器加权时的权重: α 1 = 1 2 ∗ l o g ( 1 − ϵ 1 ϵ 1 ) \alpha_1= \frac{1} {2} *log(\frac {1-\epsilon_1} {\epsilon_1}) α1=21∗log(ϵ11−ϵ1)。
- 接下来迭代数据权重,用第 i i i 轮表示。针对单个样本点 x x x而言: ω i = ω i − 1 ∗ e − α i − 1 h i − 1 ( x ) y i / ∑ x ω i − 1 ∗ e − α i − 1 h i − 1 ( x ) y i \omega_i=\omega_{i-1}*e^{-\alpha_{i-1}h_{i-1}(x)y_i} /\sum_x \omega_{i-1}*e^{-\alpha_{i-1}h_{i-1}(x)y_{i} } ωi=ωi−1∗e−αi−1hi−1(x)yi/∑xωi−1∗e−αi−1hi−1(x)yi ,除以该分母意为归一化的权重。其中 h i − 1 ( x ) h_{i-1}(x) hi−1(x)为该点在上一次迭代后所得分类器对 x x x进行的预测lable。根据该数据权重计算新的 ϵ i \epsilon_i ϵi,继而计算新的 α i \alpha_i αi,得到第 i i i个分类器在所有分类器中的权重。直到得到最终分类器。
- 使用最终分类器计算预测值: H ( x ) = s i g n ( ∑ i α i h i ( x ) ) H(x) =sign(\sum_i\alpha_ih_i(x)) H(x)=sign(∑iαihi(x))