机器学习树模型——随机森林和AdaBoost

文章目录

    • 介绍
    • 集成学习
      • Bagging (bootstrap aggregating,装袋)
      • Boosting
    • 随机森林
    • AdaBoost
    • Reference

介绍

随机森林(Random Forest)是集成学习的代表作,同时又是以bagging为基础的加法模型。随机森林在以决策树为基学习器构建bagging的基础上,进一步在决策树的训练过程中引入了随机属性的选择。

集成学习

集成学习(Ensemble Learning)通过构建多个弱分类器组合成一个强分类器来完成学习任务,几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)或改进预测(stacking)的效果。这里介绍前两种集成方法。

Bagging (bootstrap aggregating,装袋)

Bagging即套袋法,先说一下bootstrap,bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间,其算法过程如下:
机器学习树模型——随机森林和AdaBoost_第1张图片

 1. 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本
(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,
得到k个训练集。(k个训练集之间是相互独立的)
 2. 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。
 3. 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,
计算上述模型的均值作为最后的结果。

Bagging采用的采样方法是有放回的抽样方法,那么样本在k次采样中始终不会被采到的概率为 ( 1 − 1 n ) k (1-\frac{1}{n})^{k} (1n1)k,取极限后可得样本有 1 e \frac{1}{e} e1的概率未出现在采样数据集中。
Bagging方法有以下特点:

  1. Bagging通过降低基分类器的方差,改善了泛化误差。
  2. 其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起。
  3. bagging并不侧重于训练数据集中的任何特定实例,每个样本被选择的概率相同。
    最具代表性的方法,随机森林。

Boosting

与Bagging不同,boosting选用的是所有的样本。但是每个样本的权重在每次训练出基分类器时候不一样:本次训练会提升上次分类错误的样本的权重,减小前一轮分类正确的样本的权值。最后通过加法模型将弱分类器进行组合成最终的分类器。那么boosting方法就有两个核心问题:

1、迭代训练过程中如何降低模型的偏差?
2、这些弱分类器怎么组合在一起?

最具代表性的方法,AdaBoost。

随机森林

字面理解,很多棵决策树通过bagging组成一片森林。随机森林的每一棵决策树还引入了随机属性选择,假设训练样本一共有 d d d个属性,那么每棵决策树会从所有的属性集合中随机选择包含 k k k个属性的子集。然后再按照决策树的属性选择方式(信息增益熵、信息增益比)选择最优属性来构建决策树。生成 n n n棵决策树以后,采用投票法来预测最终结果。
机器学习树模型——随机森林和AdaBoost_第2张图片

AdaBoost

AdaBoost (Adaptive Boosting) 实现了boosting策略,并且将弱分类器采用加权多数表决的组合方式。首先学习一个弱分类器,
在这里插入图片描述
对所有未分类正确的样本求得分类误差率,初始的 w m i w_{mi} wmi所有的样本等概率。
机器学习树模型——随机森林和AdaBoost_第3张图片
计算基分类器的系数:
机器学习树模型——随机森林和AdaBoost_第4张图片
然后求得每个样本的权值:
机器学习树模型——随机森林和AdaBoost_第5张图片
这里可以进行将 e x p ( − α m y i G m ( x i ) ) exp(-\alpha_{m}y_{i}G_{m}(x_{i})) exp(αmyiGm(xi))简化:如果分类正确,为 e x p ( − α m ) exp(-\alpha_{m}) exp(αm);分类错误,为 e x p ( α m ) exp(\alpha_{m}) exp(αm)。由此可见,分类错误的样本的权值变大。其中, Z m Z_{m} Zm为归一化因子,
机器学习树模型——随机森林和AdaBoost_第6张图片
机器学习树模型——随机森林和AdaBoost_第7张图片
对求得的基分类器线性求和,得到最终的分类器:
机器学习树模型——随机森林和AdaBoost_第8张图片
至此,AdaBoost是这样回答上面两个核心问题的:

1、迭代训练过程中如何降低模型的偏差?
AdaBoost通过每次更新样本的权重来降低模型的偏差:上一轮分类错误的模型,在当前这一类会被提高权重。
2、这些弱分类器怎么组合在一起?
AdaBoost通过加权多数表决的方式将多个弱分类器聚合成强分类器。

Reference

1、统计学习方法,李航
2、机器学习,周志华
3、https://www.cnblogs.com/zongfa/p/9304353.html

你可能感兴趣的:(ML,决策树,算法,机器学习)