集成学习task6打卡_ZYT

AdaBoost是一种精度提升算法(Boosting Algorithm), 主要用来解决分类预测的问题。它会逐个训练单个的分类器,调整每个单个分类器的精度,之后把若干个单个的分类器组合成一个复合分类器。

AdaBoost算法主要有下面几个步骤:

  1. 初始化所有样本的权重,让所有样本的权重的初始值相等。

  2. 用样本的一个子集来创建一个弱分类器(比如一棵决策树)。

  3. 用刚创建的弱分类器,对所有的样本进行预测,获得预测结果。

  4. 增大预测错误的样本的权重。

  5. 在更新了权重的样本上创建第二个弱分类器。

  6. 依此类推,继续创建若干个弱分类器,直至新创建的弱分类器的精度不再变化,或者达到了弱分类器数目的上限。

  7. 把上面生成的弱分类器组合成一个强分类器。

GBDT与Adaboost的区别与联系:它们都属于boosting提升方法,只是损失函数不同:AdaBoost 是通过提升错分数据点的权重来定位模型的不足,而Gradient Boosting是通过算梯度来定位模型的不足。

Bagging的应用情景:

学习算法不稳定:

如果训练集稍微有所改变就会导致分类器性能比较大大变化

当学习算法不稳定的时候,Bagging这种方法通常可以改善模型的性能

boosting(提高)

boosting指的是通过算法将弱学习器转换为强学习。训练的方式是利用加权的数据,在训练早期对于错分数据给予较大的权重。

对于训练好的弱分类器,如果是分类任务按照权重进行投票,对于回归问题,进行加权再预测。

1.先从初始训练集训练出一个基学习器

2.根据基学习器的表现对训练样本分布进行调整,使得之前基学习器做错的样本在后续受到更多关注

3.基于调整后的样本训练下一个基学习器

4.重复上述步骤,直到基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合

Adaboost属于boosting,该算法每一轮都需要判断当前基学习器是否满足条件,一旦不满足,则基学习器会被抛弃,且终止学习过程。该算法的个体学习器存在着强依赖关系,应用的是串行生成的序列化方法,每个基学习器的目标都是为了最小化损失函数,所以adaboost注重减少偏差。该算法只适用于二分类。

Bagging和Boosting的区别:

1)样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2)样例权重:

Bagging:使用均匀取样,每个样例的权重相等

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3)预测函数:

Bagging:所有预测函数的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4)并行计算:

Bagging:各个预测函数可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

bagging:用于减小方差// boosting:用于减小偏差