Adaboost算法介绍

1. 集成学习(ensemble learing)背景介绍

集成学习(ensemble learing)通过构建并结合多个学习器(learner)来完成学习任务,通常可获得比单一学习器更良好的泛化性能。集成学习主要分为2类:一类是以bagging等算法为代表的,各个学习器之间相互独立、可同时生成的并行化方法;另一类是以boosting、Adaboost等算法为代表的,个体学习器是串行序列化生成的、具有依赖关系,试图增强单个学习器的学习能力。

2. Adaboost算法详解介绍

1. Adaboost的训练步骤

  1. 初始化训练样本的权值分布,每个训练样本的权值应该相等;
  2.  依次构造训练集并训练弱分类器。如果一个样本被准确分类,那么它的权值在下一个训练集中就会降低;相反,如果它被分类错误,那么它在下个训练集中的权值就会提高。权值更新过后的训练集会用于训练下一个分类器;
  3.  将训练好的弱分类器集成为一个强分类器,误差率小的弱分类器会在最终的强分类器里占据更大的权重,否则较小。

2. Adaboost算法步骤

给定一个样本数量为m的数据集T=  ,yi 属于标记集合{-1,+1}

训练集的在第k个弱学习器的输出权重为 

                                                                    D (k )=(w_{k1},w_{k2},.....w_{km}); w_{1i}=\frac{1}{m}; i=1,2.....m

① 初始化训练样本的权值分布,每个训练样本的权值相等

                                                                D (1)=(w_{11},w_{12},.....w_{1m}); w_{1i}=\frac{1}{m}; i=1,2.....m

② 进行多轮迭代。for = 1, ....T;

a.使用权值分布 D(t) 的训练集进行训练,得到一个弱分类器  ​ b. 计算 Gt(x) 在训练数据集上的分类误差率(其实就是被 Gt(x) 误分类样本的权值之和): 

                                                               e_{t} = p(G_{t(x_{i})}\neq y_{i}) = \sum_{i=1}^{m}w_{ti}I(G_{t(x_{i})}\neq y_{i})

b.计算弱分类器 Gt(x) 在最终分类器中的系数(即所占权重)    \alpha _{t}=\frac{1}{2}ln\frac{1-e_{t}}{e_{t}}

c.更新训练数据集的权重分布,用于下一轮(t+1)迭代

                                                          D(t+1)=\left \{ w_{t+1,1}, w_{t+2,1}, w_{t+3,1}, ......w_{t+1,m} \right \}     Adaboost算法介绍_第1张图片

其中Zt是规范因子,使得D(t+1)成为一个概率分布(和为1):

                                                                             

③ 集成T个弱分类器获得一个强分类器

                                                                                 

3.Adaboost相关面试题

  1. 简述一下 Adaboost 的权值更新方法。
  2. 训练过程中,每轮训练一直存在分类错误的问题,整个Adaboost却能快速收敛,为何?

        答:每轮训练结束后,AdaBoost 会对样本的权重进行调整,调整的结果是越到后面被错误分类的样本权重会越高。而后面                   的分类器为了达到较低的带权分类误差,会把样本权重高的样本分类正确。这样造成的结果是,虽然每个弱分类器可能                 都有分错的样本,然而整个 AdaBoost 却能保证对每个样本进行正确分类,从而实现快速收敛。

    3. Adaboost 的优缺点?

        答:优点:能够基于泛化性能相当弱的的学习器构建出很强的集成,不容易发生过拟合。

​                缺点:对异常样本比较敏感,异常样本在迭代过程中会获得较高的权值,影响最终学习器的性能表现。

   4. AdaBoost 与 GBDT 对比有什么不同?

答:不了解GBDT。

你可能感兴趣的:(常见的面试题)