stacking算法_集成学习的算法

d2def8b7385737b86ef625e7f2aedb41.png

目录:

  • bagging和boosting的思想和各自的代表模型?
  • stacking和blending的原理和各自的优势?

1.bagging和boosting的思想和各自的代表模型?

bagging

bagging算是很基础的集成学习的方法,他的提出是为了增强分类器效果,但是在处理不平衡问题上却有很好的效果。

模型如下:

14a7a4f681d86d135d5f03fa9acd71c2.png

如上图,原始数据集通过T次随机采样,得到T个与原始数据集相同大小的子数据集,分别训练得到T个弱分类器Classifier,然后结合为一个强分类器。

boosting

类似于bagging集成学习,boosting也是通过重采样得到多个弱分类器,最后得到一个强分类器。区别是boosting是基于权值的弱分类器集成。

模型如下:

8ef76619a1203026f058c246885f4f8e.png

如上图为boosting的流程图,主要为两个部分,更新采样权值D和计算分类器权重α,前者使得原来分错的样本再下一个分类器中能够有较大的几率出现,从而提高原来分错样本之后分对的概率;后者根据分类器的表现,赋予不同弱分类器不同权值,最后得到一个加权的强分类器。

总结 : bagging和boosting,boosting有点像bagging的改进版本,加入了权值采样和权重强分类的概念。都是通过重采样和弱分类器融合实现的方法。

参考资料:http://blog.csdn.net/jlei_apple/article/details/8168856

2.stacking和blending的原理和各自的优势?

Stacking是k折交叉验证,元模型的训练数据等同于基于模型的训练数据,该方法为每个样本都生成了元特征,每生成元特征的模型不一样(k是多少,每个模型的数量就是多少);测试集生成元特征时,需要用到k(k fold不是模型)个加权平均。

Blending 与Stacking大致相同,只是Blending的主要区别在于训练集不是通过K-Fold的CV策略来获得预测值从而生成第二阶段模型的特征,而是建立一个Holdout集。简单来说,Blending直接用不相交的数据集用于不同层的训练。

使用Stacking,组合1000多个模型,有时甚至要计算几十个小时;

但它也有优点:

1.它可以帮你打败当前学术界性能最好的算法;

2.我们有可能将集成的知识迁移到到简单的分类器上;

3.自动化的大型集成策略可以通过添加正则项有效的对抗过拟合,且并不需要太多的调参和特征选择。所以从原则上讲, stacking非常适合于那些“懒人”;

4.这是目前提升机器学习效果最好的方法,或者说是最效率的方法human ensemble learning。

blending是直接准备好一部分 10%留出集只在留出集上继续预测,用不相交的数据训练不同的Base Model ,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

Blending的优点在于:

1.比stacking简单(因为不用进行k次的交叉验证来获得stacker feature);

2.避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集;

3.在团队建模过程中,不需要给队友分享自己的随机种子;

而缺点在于:

1.使用了很少的数据(是划分hold-out作为测试集,并非cv);

2.blender可能会过拟合(其实大概率是第一点导致的);

3.stacking使用多次的CV会比较稳健。

参考资料 : https://blog.csdn.net/tomatotian/article/details/103054883

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值