定义
通过训练若干个个体学习器,通过一定的结合策略,来完成学习任务,(常常可以获得比单一学习显著优越的学习器)就可以最终形成一个强学习器。
分类
种类 | 学习器 | 代表 | 计算 | 样本 | 样本权重&弱分类起权重 |
---|---|---|---|---|---|
bagging | 所有的个体学习器都是一个种类的 | 随机森林 | 并行,个体学习器之间不存在强依赖关系 | 训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。 | 使用均匀取样,每个样例的权重相等 所有预测函数的权重相等。 |
boosting | 所有的个体学习器都是一个种类的 | AdaBoost, Xgboost,GBDT | 串行,个体学习器之间存在强依赖关系 | 每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。 | 根据错误率不断调整样例的权值,错误率越大则权重越大。 每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。 |
Stacking | 所有的个体学习器不全是一个种类的 |
Bagging
代表算法:随机森林(Random Forest)
step
-
从原始样本集中抽取训练集。每轮从原始样本集中抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中,每次采样事独立随机的),共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)。
-
每次使用一个训练集得到一个模型,k个训练集共得到k个模型。
-
对分类问题:少数服从多数。
-
对回归问题,计算均值。
随机森林
随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择
Boosting
代表算法:AdaBoost, Xgboost,GBDT
训练过程为阶梯状,基模型按次序一一进行训练(实现上可以做到并行),基模型的训练集按照某种策略每次都进行一定的转化。如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重。对所有基模型预测的结果进行线性综合产生最终的预测结果
step
-
首先从训练集用初始权重训练出一个弱学习器1;
-
根据弱学习的学习误差率表现来更新训练样本的权重,错误样本权重变高,让模型更关注错误样本;
-
然后基于调整权重后的训练集来训练弱学习器2;
-
如此重复进行,直到弱学习器数达到事先指定的数目T;
-
最终将这T个弱学习器通过加权求和(加法模型),得到最终的强学习器。
优点 | 缺点 | ||
---|---|---|---|
AdaBoost | 利用前一轮弱学习器的误差率来更新训练集的权重 ,这样一轮轮的迭代下去,简单的说是 Boosting框架+任意基学习器算法+指数损失函数 | 对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终预测准确性 | |
Xgboost | CART回归树模型 | ||
GBDT | 每个分类器在上一轮分类器的残差基础上进行训练。 |
Stacking
分阶段操作:第一阶段输入数据特征得出各自结果,第二阶段再用前一阶段结果训练得到分类结果。
step
-
首先先训练多个不同的模型;
-
然后把之前训练的各个模型的输出为输入来训练一个模型,以得到一个最终的输出。
具体方法是把数据分成两部分,用其中一部分训练几个基模型A1,A2,A3,用另一部分数据测试这几个基模型,把A1,A2,A3的输出作为输入,训练组合模型B。