统计学习方法(5)集成学习(提升方法)

统计学习方法(4)集成学习(提升方法)

1、Bagging:

基于并行策略:基学习器之间不存在依赖关系,可同时生成。

基本思路:

  • 利用自助采样法对训练集随机采样,重复进行 T 次;
  • 基于每个采样集训练一个基学习器,并得到 T 个基学习器;
  • 预测时,集体投票决策

自助采样法:对 m 个样本的训练集,有放回的采样 m 次;
此时,样本在 m 次采样中始终没被采样的概率约为 0.368,即每次自助采样只能采样到全部样本的 63% 左右。
在这里插入图片描述

采样和训练过程:
在这里插入图片描述

特点:

  • 训练每个基学习器时只使用一部分样本;
  • 偏好不稳定的学习器作为基学习器;
  • 每一个单独的分类器在原始训练集上都是高偏差,但是聚合降低了偏差和方差。

所谓不稳定的学习器,指的是对样本分布较为敏感的学习器。

为什么不稳定的学习器更适合作为基学习器?

  • 不稳定的学习器容易受到样本分布的影响(方差大),很好的引入了随机性;这有助于在集成学习(特别是采用 Bagging 策略)中提升模型的泛化能力。
  • 为了更好的引入随机性,有时会随机选择一个属性子集中的最优分裂属性,而不是全局最优(随机森林)。

2、随机森林:

随机森林是bagging方法的典型应用,随机森林算法是以决策树算法为基础,通过bagging算法采样训练样本,再抽样特征,3者组合成的算法。对应scikit-learn中为RandomForestClassifier (RandomForestRegression),它有着决策树(DecisionTreeClassifier)的所有参数,以及bagging(BaggingClassifier)的所有参数。

当处理高维(多特征)数据(例如: 图像)时,这种方法比较有用。同时对训练数据和特征进行抽样称为Random Patches,只针对特征抽样而不针对训练数据抽样是Random Subspaces。

随机的意义?
不管是对样本的随机采样,还是对特征的抽样,甚至对切分点的随机划分,都是为了引入偏差,使基分类器之间具有明显的差异,相互独立,提升模型的多样性,使模型不会受到局部样本的影响,从而减少方差,提升模型的泛化能力。


3、Boosting:

基于串行策略:基学习器之间存在依赖关系,新的学习器需要根据上一个学习器生成。

基本思路:

  • 先从初始训练集训练一个基学习器,初始训练集中各样本的权重是相同的;
  • 根据上一个基学习器的表现,调整样本权重,使分类错误的样本得到更多的关注;
  • 基于调整后的样本分布,训练下一个基学习器;
  • 测试时,对各基学习器加权得到最终结果

特点:

  • 每次学习都会使用全部训练样本

代表算法:

  • AdaBoost 算法
  • GBDT 算法

4、AdaBoost算法:

在这里插入图片描述
在这里插入图片描述

AdaBoost 算法还有另一个解释,即可以认为AdaBoost算法是模型为加法模型、损失函数为指数函数、学习算法为前向分步算法时的二类分类学习方法。

  • AdaBoost 算法是前向分步算法的特例。
  • 此时,基函数为基分类器,损失函数为指数函数L(y,f(x)) = exp(-y*f(x))

5、Boosting/Bagging 与 偏差/方差 的关系

  • 简单来说,Boosting 能提升弱分类器性能的原因是降低了偏差;Bagging 则是降低了方差

  • Boosting 方法:

    • Boosting 的基本思路就是在不断减小模型的训练误差(拟合残差或者加大错类的权重),加强模型的学习能力,从而减小偏差
    • 但 Boosting 不会显著降低方差,因为其训练过程中各基学习器是强相关的,缺少独立性。
  • Bagging 方法:

    • 对 n 个独立不相关的模型预测结果取平均,方差是原来的 1/n;
    • 假设所有基分类器出错的概率是独立的,超过半数基分类器出错的概率会随着基分类器的数量增加而下降。
  • 泛化误差、偏差、方差、过拟合、欠拟合、模型复杂度(模型容量)的关系图:
    在这里插入图片描述


参考:
《统计学习方法》 李航

猜你喜欢

转载自blog.csdn.net/olizxq/article/details/82951090
今日推荐