集成学习
集成学习通过构建并结合多个学习器来完成学习任务,通常获得比单一学习器更好的泛化性能,这针对弱学习器尤为明显
个体学习器
个体学习器通常由一个现有的算法从训练数据产生,集成中若只包含同种类型的个体学习器,那么称之为同质集成,若包含不同类型的个体学习器,称之为异质集成
boosting bagging
boosting
boosting 是一族可将弱学习器提升为强学习器的算法,它先从初识训练集训练一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此重复进行直到学习器数目达到事先指定的值T
Boosting算法最著名的代表:AdaBoost(详见西瓜书p173)
####bagging
Bagging(Bootstrap AGGregatING)是并行式集成学习方法最著名的代表,它基于自助采样法,初始训练集中约有63.2%的样本出现在采样集中。
训练一个Bagging集成与直接使用基学习算法训练一个学习器的复杂度同阶,而且自助采样给Bagging带来了另一个优点,可以让剩下约36.8%的样本作为验证集来对泛化性能进行包外估计(out-of-bag estimate)。
从偏差-方差分解的角度看,Bagging主要关注降低方差,因此它在不剪枝决策树,神经网络等易受样本扰动的学习器上效果更明显
结合策略
学习器结合可能会带来三大好处:
- 由于学习任务的假设空间往往很大,可能有很多假设再训练集上达到相同性能,结合多学习器会减小泛化性能不佳
- 学习算法往往会陷入局部极小,经过多次结合,可降低陷入糟糕局部极小点的风险
- 某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,通过结合多个学习器会使假设空间扩大,可能会学得更好的近似
随机森林思想
随机森林(Random Forest,简称RF),RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。传统决策树在选择划分属性时是在当前结点的属性集合(假定由d个属性)中选择一个最优属性,而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分,这里参数k控制了随机性的引入程度,一般情况下推荐值$k=log_2d$
随机森林的推广
- Extra trees(具体之后再补充)
优缺点
优点:RF简单,容易实现,计算开销小,令人惊奇的是它的强大性能。它的扰动不仅来自于样本扰动,还来自于属性扰动,这使得它的泛化性能进一步上升。
缺点:它在训练和预测时都比较慢,而且如果需要区分的类别很多时,随机森林的表现并不会很好。
sklearn参数2
RF的分类学习器为 RandomForestClassifier,回归学习器为 RandomForestRegressor,具体可以参见官方库介绍。
应用场景
几乎可以用于任何一种预测问题