Abstract:ensemble learning的相关系统知识
Key words: ensemble learning、bagging、AdaBoost、Stacking
ensemble learning
集成学习主要分为串行的Boosting和并行的Bagging,以及Stacking
bagging
主要作用是模型输出的结果更平滑。使用的对象是能力比较强的模型。只是让模型变得更加“圆滑”,方差更小
- 从训练集中抽出个样本,注意这里是有放回抽样,也就是你取样一个标记好输入输出,然后再将它放进去,抽取下一个样本。
- 重复步骤1,我们得到多个数据集set1,set2...。
- 对每一个数据集,我们都用一个复杂的模型对其进行学习,得到多个function。
接下来在testing的时候,就把testing data放到每一个function里面,再把得出来的结果做平均(回归)或者投票(分类),通常来说表现(variance比较小)都比之前的好,这样就不容易产生过拟合。
当一个模型的方差较大,而偏差较小时,为了减小方差,我们就可以使用bagging的策略。
Boosting
Boosting,则是针对一个学习能力弱的模型,该模型不能很好拟合训练集的数据。使用的对象是能力比较弱的模型 首先我们找到一个学习能力比较弱的分类器模型f1(x)。 寻找另一个分类器模型分f2(x)来辅助f1(x),这里要注意的是,二者不能太相似,是来弥补的能力的,来做到一些它不能做到的事情。 找到另一个分类器f1(x)来弥补f2(x)。 如此不断重复下去,最后再将所有的分类器合在一起,就可以得到一个在训练集上拟合很好的新模型。
AdaBoost
AdaBoost 本质就是,每次迭代更新样本分布,然后对新的分布下的样本学习一个弱分类器,和它对应的权重。更新样本分布的规则是:减小之前弱分类器分类效果较好的数据的权重,增大之前弱分类器分类效果较差的数据的权重。最终的分类器是弱分类器线性组合。
Gradient Boosting
Gradient Boosting 是一种 Boosting 的思想,它本质是,每一次建立模型是在之前建立模型损失函数的梯度下降方向。adamBoost 是一种特殊的Gradient Boosting。
Gradient Boosting其步骤如下
Stacking
我们可以把多个分类器的输出y,作为一组新的特征输入到一个分类器当中,比如一个逻辑回归(不需要太复杂的模型),然后得到最终的分类结果。
reference
https://zhuanlan.zhihu.com/p/25096501
https://zhuanlan.zhihu.com/p/539966353