集成学习方法

个体与集成

集成学习(ensemble learning): 通过构建并结合多个学习器来完成学习任务

同质集成(homogeneous): 集成中只包含同种类型的个体学习器( 神网+神网, 决策树+决策树), 其中的个体学习器称为”基学习器”, 算法为”基学习算法”.

异质集成(heterogenous): 集成中包含不同类型的个体学习器( 神网+决策树 ), 其中的个体学习器称 “组件学习器”或”个体学习器”

要获得好的集成效果, 每个个体学习器应 “好而不同”, 即个体学习器要有一定的准确性, 同时还要有一定的差异性(否则多个学习器会退化成单一学习器,因为每个学习器都差不多)

事实上, 个体学习器的”准确性”和”差异性”本身就存在冲突, 一般的, 当准确性很高之后, 要增加多样性就需要牺牲准确性. 根据个体学习器的生成方式, 目前的集成学习方法大致可分为两大类:

  • 个体学习器间存在依赖关系, 必须串行生成的序列化方法, eg: Boosting
  • 个体学习器间不存在依赖关系, 可同时生成的并行化方法, eg: Bagging 和 随机森林(Random Forest)

Boosting

工作机制: 先从初始训练集训练出一个基学习器, 再根据基学习器的表现对训练样本进行调整, 使得先前基学习器做错的训练样本在后续受到更多关注, 然后基于调整后的样本分布来训练下一个基学习器, 如此重复进行, 直至基学习器数目达到事先指定的值T, 最终将这T个基学习器进行加权结合

Boosting族有很多种算法, 最著名的代表是 AdaBoost