ensemble learning 集成学习主要分为串行的Boosting和并行的Bagging,以及Stacking

2023-12-31 17:23:32 浏览数 (2)

Abstract:ensemble learning的相关系统知识

Key words: ensemble learning、bagging、AdaBoost、Stacking

ensemble learning

集成学习主要分为串行的Boosting和并行的Bagging,以及Stacking

bagging

主要作用是模型输出的结果更平滑。使用的对象是能力比较强的模型。只是让模型变得更加“圆滑”,方差更小

  1. 从训练集中抽出个样本,注意这里是有放回抽样,也就是你取样一个标记好输入输出,然后再将它放进去,抽取下一个样本。
  2. 重复步骤1,我们得到多个数据集set1,set2...。
  3. 对每一个数据集,我们都用一个复杂的模型对其进行学习,得到多个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

0 人点赞