【机器学习模型】集成学习总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KevinBetterQ/article/details/84404803


首先,集成学习是将多个个体学习器进行结合。
若同种类型的个体学习器集成,就是“同质集成”;若集成包含不同类型的个体学习器,就叫“异质集成”。

一. 同质集成

集成学习是结合多个个体学习器(这里也叫基学习器),那首先要产生多个不同的基学习器。如何产生多个不同的基学习器,便在于样本数据集的利用上。
所以,下面介绍的几种集成学习,很大的不同在于如何使用样本数据集,如何进行训练得到多个基学习器。(研究不同方法时可以先问一下这个问题)

1. Boosting

:如何使用样本数据集,进行训练得到多个个体学习器?
每次学习时更新样本权重,不同样本权重训练会得到不同学习器,然后每个学习器计算一个系数,得到最终集成模型。

不同个体学习器间存在强依赖关系,必须串行生成,因为每次更新样本权重都要依赖上一个分类器。

主要关注较低偏差,提高拟合程度。

典型:AdaBoost
利用加性模型迭代式优化指数损失函数得到算法,只适用于二分类。
不断迭代,每一次迭代,更新样本权值 D t D_t 、得到基分类器 h t h_t h t h_t 的权重 α t \alpha_t
最终得到模型:
H ( x ) = s i g n ( t = 1 T α t h t ( x ) ) H(x)=sign(\sum _{t=1}^{T}\alpha_th_t(x))

(TODO:AdaBoost的详细算法推导待完成)

2. Bagging

:如何使用样本数据集,进行训练得到多个个体学习器?
每次训练得到学习器时,利用自主采样法(放回抽样),从所有样本中得到不同样本子集,从而训练得到不同学习器。采用简单投票法或简单平均法得到最终输出结果。

不同学习器之间训练无联系。

主要关注较低方差,从而较低样本变化造成的影响。

特例:随机森林(RF)
RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择
引入随机属性选择之后,不仅通过样本变化,还通过属性变化来得到不同基学习器。

3. Stacking

多个初级学习器 ——> 输出类概率 ——> 次级训练器 ——> 最终输出

:如何使用样本数据集,进行训练得到多个个体学习器?
将训练集随机划分为 k 个大小相似的集合,k 折交叉验证法利用初级学习算法(k 折会训练出 k 个不同的学习器),得到每个样本的 “输出类概率”作为次级学习算法的输入属性,样本的标记仍作为标记,训练得到次级学习器。

“多个初级学习器 + 次级学习器” 便是stacking集成模型了。

二. 异质集成

就是不同类型的学习器的结合策略。针对一个问题,利用完全不同的模型会得到多个输出结果。下面的方法便是如何统一这些结果得到一个最终最优的结果。

1. 平均法

针对数值型输出

  • 简单平均
  • 加权平均

2. 投票法

针对分类问题的

  • 绝对多数投票
  • 相对多数投票
  • 加权投票

3. 学习法(Stacking)

和上面介绍的一样:
将不同模型得到的输出结果再扔进一个次级学习器中训练,标签不变。
多个初级学习器 ——生成——> 新数据集 ——训练——> 次级学习器

三. “好而不同”

集成学习的关键就在于 所集成的个体学习器 “好而不同”,如何得到多个 “好而不同” 的学习器呢?那便是多样性增强

1. 数据样本扰动

利用不同训练集训练
对“不稳定学习器”有效,例如决策树、神经网络等。
(“稳定学习器”有线性模型、SVM、朴素贝叶斯、k近邻等)

2. 输入属性扰动

属性或特征的不同子集会提供观察样本数据的不同视角。

3. 输出表示扰动

可以对训练样本的类标记稍作改动

4. 算法参数扰动

就是参数变动了,很直接


参考:
《机器学习》周志华

猜你喜欢

转载自blog.csdn.net/KevinBetterQ/article/details/84404803