随机森林算法梳理

【1】随机森林算法梳理

1集成学习概念

构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(cjommottee-based learning)

  • 同质集成:只包含同种类型的个体学习器(基学习器)
  • 异质集成:个体学习器由不同的学习算法生成(组件学习器)

根据个体学习器的生成方式分为:

  1. 个体学习器间存在强依赖关系、必须串行生成的序列方法。如:Boosting
  2. 个体学习器间不存在强依赖关系、可同时生成的并行化方法。如:Bagging 和随机森林(Rasdom Forest)

2个体学习概念

通常由一个现有的学习算法从训练数据产生如:C4.5决策树算法、BP神经网络

3 boosting &bagging

  • Boosting(串行式学习):一簇可将弱学习器提升为强学习器的算法

20181219123557197 (1)

先从初始训练集训练一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器

  • bagging(并行式学习)

在这里插入图片描述

  • 基本流程:采用的自动采样法,给定包含m个样本的数据集,有放回抽取,经过m次随机采样操作,得到含m个样本的采样集,这样可以采样出T个含有m个训练样本的采样集,然后基于每个基于每个采样集训练出一个基学习器,再将这些基学习器进行结合:

    1. 分类任务使用简单投票法
    2. 回归任务使用简单平均法
  • 优点

    1. (由于采用了自采样过程)每个基学习器只使用了初始训练集中约63.2%的样本,剩下约36.8%的样本可用作验证集对泛化性能进行“包外估计”

4 结合策略

  • 学习器结合可能会从三个方面带来好处:

    1. 统计方面:由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若单个学习器可能因为误选而导致泛化性能不佳,结合多个学习器则会减少风险

    2. 计算方面:降低糟糕陷入局部最小点的风险

    3. 表示方面:结合多个学习器,假设空间有所扩大,有可能学得更好的近似

在这里插入图片描述

  • 结合方法

    1. 平均法(数值型输出):

      • 简单平均:
        H ( x ) = i T ∑ i = 1 T h i ( x ) H(x) = \frac{i}{T}\sum_{i=1}^Th_i(x) H(x)=Tii=1Thi(x)

      • 加权平均:
        H ( x ) = i T ∑ i = 1 T w i h i ( x ) H(x) = \frac{i}{T}\sum_{i=1}^Tw_ih_i(x) H(x)=Tii=1Twihi(x)
        其中 w i w_i wi是个体学习器的权重,通常要求 w i ≥ 0 w_i\geq0 wi0, ∑ i = 1 T = 1 \sum_{i=1}^T=1 i=1T=1

        加权平均算法也存在一定的缺陷,因为加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠。尤其当集成规模较大时,要学习的权重较多,就容易导致过拟合

      • 一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法

    2. 投票法(分类任务)

      1. 绝大多数投票法

        即如某标记得票过半数,则预测为该标记,否则拒绝预测

      2. 相对多少投票法

        即预测为得票最多的标记,若同时有多个标记获得最高票,则从中随机选择一个

      3. 加权投票法

    3. 学习法

      当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。Stacking是学习法的典型代表。我们将个体学习器称为初级学习器,结合学习器称为次级学习器

5随机森林思想

  • 在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择

    • 传统决策树在选择划分属性时是在当前节点的属性集合(假设有d个属性)中选择一个最优属性
    • 在RF中,从该点属性集合中随机选择一个包含k个属性的子集(若k=d,则基决策树的构建与传统决策树相同)——推荐 k = log ⁡ 2 d k = \log_2 d k=log2d

6 随机森林推广

  • extra treesExtremely Randomized Trees)

    初始训练集属性选择
    RF自助采样法随机选择基于信息增益、信息增益率、基尼系数等
    Extra Tree原始数据随机选择一个特征

    由于Extra Tree是随机选择特征点进行划分,所以最后得到的决策树规模会大于RF生成的决策树,Extra Tree决策树的方差会减少,泛化能力比RF强

  • TRTE(Totally Random Trees Embedding)

  • Isolation Forest(IForest)

    IForest(孤立森林)是一种异常点检测算法,使用类似RF的方式来检测异常点,IForest算法与RF算法的区别在于:

    1. 在随机采样的过程中,一般只需要取得少量的数据即可;
    2. 在进行决策树构建过程中,IForest算法会随机选择一个划分特征,并对划分特征随机选择一个划分阈值;
    3. IForest算法构建的决策树一般深度是比较小的。

    区别原因:目的是异常检测,所以只要能够区分异常的数据即可,不需要大量的数据;在异常点的检测过程中,一般不需要构建太大规模的决策树(在前几个分支就可以判断出异常点)

7 优缺点

  • 优点
    1. 训练可以并行化,计算开销小,能够高效地对大数据集进行训练;
    2. 实现简单、准确率高;
    3. 能够评估各个特征在分类问题上的重要性;
    4. 能够处理高维特征的输入样本,且不需要降维操作;
    5. 对部分特征的缺失不敏感;
    6. 能够取到内部生成误差的一种无偏估计,不需要交叉验证或者用一个独立的测试集获得误差的无偏估计;
    7. 由于存在随机抽样,训练出来的模型方差小,泛化能力强。
  • 缺点
    1. 某些噪音比较大的特征上,RF模型容易陷入过拟合;
    2. 取值比较多的特征对RF的决策会产生更大的影响,有可能影响模型的效果;
    3. 随机森林解释性不强,有点像黑盒模型。

8 sklearn参数

class sklearn.ensemble.RandomForestClassifier
(
    n_estimators=10, 
    criterion='gini', 
    max_depth=None, 
    min_samples_split=2, 
    min_samples_leaf=1,
    min_weight_fraction_leaf=0.0,
    max_features='auto',
    max_leaf_nodes=None, 
    min_impurity_decrease=0.0, 
    min_impurity_split=None,
    bootstrap=True, 
    oob_score=False, 
    n_jobs=1, 
    random_state=None,
    verbose=0, 
    warm_start=False, 
    class_weight=None
    )

参考:SKlearn参数详解—随机森林

9 应用场景

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值