集成学习 ensemble learning

Stacking

首先我们先训练多个不同的模型,然后把之前训练的各个模型的输出作为输入来训练一个新的最终分类器的模型,以得到一个最终的输出。
但在实际中,我们通常使用logistic回归作为组合策略。

Bagging

Bagging是bootstrap aggregating的简写
在Bagging方法中,利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集,在每个数据集上学习出一个模型,最后的预测结果利用N个模型的输出得到,具体地:分类问题采用N个模型预测投票的方式,回归问题采用N个模型预测平均的方式。
1).从原始样本集中用Bootstrap采样选出N个样本(新)
2).对这N个样本建立分类器
3).重复1-2步,建立m个分类器
4).将Bootstrap采样选出n个样本(m个新的样本数据集),在m个分类器上进行分类
5).把m个分类器分类的结果进行投票,得到最多的为最终的类别。
Boostrap是一种有放回的抽样方法。一般N>1000N>1000
1.重复K次
有放回地重复抽样建模 ,训练子模型
2.模型融合
分类问题:voting
回归问题:average
随机森林(Random Forest: bagging + 决策树):
将训练集按照横(随机抽样本)、列(随机抽特征)进行有放回的随机抽取,获得n个新的训练集,训练出n个决策树,通过这n个树投票决定分类结果

Boost

主要也是学习一系列弱分类器,并将其组合为一个强分类器。
AdaBoost(Adaptive boosting)算法:刚开始训练时对每一个训练例赋相等的权重,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。 见下图:
集成学习 ensemble learning_第1张图片

GBDT(Gradient Boost Decision Tree)也是一种Boosting的方法

  • Bagging中每个训练集互不相关,也就是每个基分类器互不相关,而Boosting中训练集要在上一轮的结果上进行调整,也使得其不能并行计算
  • Bagging中预测函数是均匀平等的,但在Boosting中预测函数是加权的

参考
https://zhuanlan.zhihu.com/p/27689464
https://blog.csdn.net/Julialove102123/article/details/78475774

你可能感兴趣的:(machine,learning)