集成学习(Ensemble Learning):Boosting、Bagging、Random Forest、Stacking

集成学习(Ensemble Learning)

  集成学习主要有两个分类,一个是个体学习器存在强依赖关系、必须串行生成的序列化方法,以Boosting为代表。另外一种是个体学习器不存在强依赖关系、可同时生成的并行化方法,以Bagging和随机森林(Random Forest)为代表。同时,集成学习还有一种分两个层次组合学习器的方法,即Stacking方法。


Boosting

  boosting模型用一句话解释就是,用模型学习先前的模型的残差(负梯度),具体boosting的原理可以看我的blog:提升方法(boost)。其中boosting方法的一个大杀器XGboost的原理可以看我的blog:梯度提升决策树(GBDT)与极端梯度提升(xgboost)算法


Bagging

  bagging模型相对简单,记总数据量为N,把总数据划分成m个子数据集,划分的方法利用bootstrap(bootstrap下一段讲),利用这m份子数据集分别学习m个基学习器,最后综合这m个基学习器的结果,若是分类问题,利用majority voting (多数投票) 进行综合,若是回归问题,直接平均即可。所以,简单把多个回归模型的结果进行平均是不叫集成学习的,至少缺少bootstrap这个过程。
  bootstrap(自助法)十分简单,是一种有放回的随机采样,设总数据量为N,利用有放回的随机采样从总数据中生成m个子数据集,每一个子数据集的总量也是N,当然每一个子数据集中存在重复现象,同时每一个子数据集也不可能包含所有的数据,每生成一个子数据集,大概有36.8%的数据未包含进去,36.8%这一值可以这样计算得到,在总数据N中随机一次采样,一个数据未被抽中的概率是 1 − 1 N 1-\frac{1}{N} 1N1,进行N次有放回的采样,该数据仍然未被抽中的概率是 ( 1 − 1 N ) N (1-\frac{1}{N})^{N} (1N1)N,如果N趋近于无穷,这个概率变为 1 e \frac{1}{e} e1,即36.8%,这一批未被抽取到的数据也被称为oob(out of bag, 袋外)样本,可以作为这一子数据集的验证集。

Random Forest

  随机森林是特殊的bagging方法,随机森林限定基学习器必须是决策树,同时在利用bootstrap进行采样生成子数据集的同时,也会对特征进行采样,如果把总数据表示成 N × M N\times M N×M的矩阵, N N N是总记录数, M M M是总特征数,则随机森林会对这个矩阵的行和列都进行采样,来训练基学习器。利用随机森林进行分类的示意图如下:

  随机森林可以输出特征重要度,这个特征重要度可以用于数据选择。


Stacking

  stacking方法的基本思路是,先用训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) … ( x n , y n

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值