带你搞懂集成学习原理

一、集成学习是什么?

举个例子,假设你有一个关于股票的问题,你身边有10个朋友,他们分别有自己擅长的行业股票,你想得到他们的帮助,你可以这样做。
(1)选出你最信任的那个朋友,听从他的建议(普通的学习算法,选择验证效果最好的)
(2)让所有朋友给你建议,通过某个加权计算或者投票,计算出最终的答案(集成学习,训练多个基学习器,用某种结合策略得到最终学习器)

二、集成学习怎么实现?

实现集成学习要解决三个问题:
(1)如何得到个体学习器(每位朋友的建议)
(2)选择并行还是串行的学习方式(每位朋友独立给出建议再结合or朋友们一个接一个的建议,最后结合)
(2)如何选择结合策略(怎么结合朋友们的建议)

1、个体学习器

这里也涉及到三个问题
(1)选择什么算法训练个体学习器?
通常选择一个现有的学习算法训练产生个体学习器,例如决策树、神经网络
(2)不同的基学习器用同样的算法吗?
可以用相同的算法,这样的集成是“同质”的,我们可以管“同质”的集成里的个体学习器叫基学习器;也可以用不同的算法,这样的集成是“异质”的,我们可以管“异质”的集成里的个体学习器叫组件学习器
(3)什么样的个体学习器更好?
我们再考虑向朋友请教股票建议的问题。如果朋友们给的建议都很糟糕,那么神仙也无法从中得到好的建议,所以个体学习器必须有一定的“准确性”;如果所有朋友的建议都一样,那么就失去了结合10个人的建议的意义,所以个体学习器必须有一个定的“多样性”,简单的说就是“好而不同”。

2、选择学习方式

集成学习是一个大家族,学习的方式有Boosting,Bagging等,每个家族分别有很多不同的实现,他们的不同主要在于生成学习器方式,下面略作讲解

2.1 Boosting

学习机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的的训练样本在后续受到更多关注,然后基于调整后的样本分布训练下一个基学习器;重复进行,直到基学习器数目达到事先指定的值T,最终将这T个基学习器加权结合
常见算法:AdaBoost、GBDT、XGBoost等
总结:Boosting是一族可将弱学习器提升为强学习器的算法。Boosting算法是对特点的数据分布进行学习,可以通过“重赋值法”或者“重采样法”来处理。Boosting算法关注降低偏差,可以基于泛化能力相当弱的学习器构建出很强的集成

2.2 Bagging

学习机制:对原始数据自助采样,产生T个不同的子集,分别学习生成T个基学习器,再将这些基学习器结合
常见算法:RF
总结:Bagging是一族并行式生成基学习器,并结合成强学习器的算法。Bagging主要关注降低方差。

3、选择结合策略

3.1 平均法:数值型输出

(1)简单平均法


H(x)=1TTi=1hi(x) H ( x ) = 1 T ∑ i = 1 T h i ( x )

(2)加权平均法


H(x)=1TTi=1ωihi(x) H ( x ) = 1 T ∑ i = 1 T ω i h i ( x )

其中 ωi0,Ti=1ωi=1 ω i ≥ 0 , ∑ i = 1 T ω i = 1

3.2 投票法:类别标记输出

(1)绝对多数投票法
预测为得票最多的标记,如果同时有多个标记获得最高票,就从中随机选取一个
(2)相对多数投票法
预测为得票超过半数的标记,如果没有就拒绝预测
(3)加权投票法
每个弱学习器的票数乘以一个权重,预测为加权后的票数最多的标记

3.3 学习法

学习法的代表方法是stacking,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
  在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。

三、总结

集成学习是一种工业上非常常用的算法,相对单一的算法更强大也更易用

参考资料
《统计学习方法》
《机器学习》
http://www.cnblogs.com/pinard/p/6053344.html http://sklearn.apachecn.org/cn/0.19.0/modules/tree.html
有错误的话请指正。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值