机器学习ensemble之stacking方法及新手的坑

tags: [机器学习, ensmeble]

原始博客查看:小白机器学习博客

Ensembel(集成学习)是一个简单,但非常有效的算法,在各大kaggle竞赛中,获得很高排名的,很多都应用了ensemble方法。这里是对ensemble learning 进行优秀资源的整理,便于以后查看。

了解集成学习可以从这篇blog开始:
集成学习(ensemble learning)原理详解

常见的Ensemble方法有这2种:Bagging and boosting。还有现在越来越多的stacking and blending。

Bagging

Bagging 算法如下图,通过随机采样训练集,进行训练,采集T个训练集,就训练T个弱学习器。然后通过一定的结合策略,如取平均,或者vote等形式变成一个强学习器。采集训练集时,是有放回的采集。
这里写图片描述

Boosting

从图中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。

Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里面应用最广泛的是梯度提升树(Gradient Boosting Tree)。AdaBoost和提升树算法的原理在后面的文章中会专门来讲。From: link

这里写图片描述

Stacking&blending

理解

数据比赛大杀器—-模型融合(stacking&blending)
大话机器学习之STACKing,一个让诸葛亮都吃瘪的神技

这里写图片描述

错误认知

研究了stack技能有一阵子,查到的资料和代码基本上都是这样的。里面给的图如下图

这里写图片描述

看他的代码怎么都不能理解。KFold,cross-validation不是应该一个model就要训练了5次吗?为什么图中是用一个**model来训练一个Fold集,而代码中是每个model都要训练每个**fold集。

所以大

  • 10
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值