【机器学习】集成学习笔记

1. 基础知识

  • 概念:集成学习(ensemble learning)先产生出一组“个体学习器”,再用某种策略将它们结合起来。这些个体学习器可以类型相同,也可以不同。
  • 集成学习通过将多个学习器进行集合,常可获得比单一学习器显著优越的泛化性能,但有一个小条件——这些个体学习器至少不差于弱学习器(泛化性能略优于50%的学习器)。这次融合我的XGBOOST和Andy的GBDT结果集得到了非常好的提升效果的,我认为就很好地佐证了集成学习这个理念的正确性。
  • 集成个体最好是“好而不同”的(一个二分类任务的例子)。这个“不同”指基学习器之间要有差异,同时误差尽可能相互独立(虽然这是不可能的)。   基学习器的“准确性”+“多样性”之间的平衡就是集成学习研究的核心。虽然“独立”在现实中无法做到,但可以使基学习器之间有具有较大的差异。比如给定一个训练集,我们可以有交叠地采集子集来训练出不同的基学习器,这种方法提示我在O2O优惠券赛中,可以抽样产生多个训练集来训练出多个模型,最后对预测结果进行融合。
  • 分类:序列化方法(代表是Boosting)和并行化方法

2.Boosting

  • 概述:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后根据调整后的样本分布来训练下一个基学习器;如此重复进行,直到基学习器数目达到事先指定的数目T,最终将这T个基学习器进行加权结合。
  • 代表算法:Adaboost(加性模型迭代  指数损失函数)

3.Bagging与随机森林

  • Bagging:采样出T个含m个训练样本的采集样,然后基于每个采集样训练出一个基学习器(这可以理解为通过样本扰动来产生基学习器的“多样性”),再将这些基学习器进行结合(每个基学习器使用相同的权重进行投票或平均)。
  • 随机森林(Random Forest):Bagging的一个变体,在以决策树为基学习器构建Bagging的基础上,进一步在决策树的训练过程中引入了随机过程选择(具体来说,在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,再从这个子集中选择一个最优属性用于划分(这里有对计算开销的减少)。这可以看作是通过样本扰动+属性扰动来产生基学习器的“多样性”)。随着学习器数目的增加,RF通常能收敛到较个体更低的泛化误差。

4.结合策略

猜你喜欢

转载自blog.csdn.net/orsonV/article/details/81505528