随机森林原理

目录

1. 介绍

2. 特征选择

2.1 袋外错误率(oob error)

2.2 特征重要性

2.3 特征选择

3. 优缺点

3.1 优点

3.2 缺点


1. 介绍

随机森林(Random Forest,RF)是典型的bagging算法,顾名思义,森林就是由多个决策树构成的算法,其基学习器为CART决策树换句话说,其实我们只是将使用CART决策树作为弱学习器的Bagging方法称为随机森林)。之所以称为随机是因为:

  • 训练样本选取随机,即每一个样本的随机选取都是有放回的选取。这样,每一颗树的训练样本几乎都不相同。(这一点与保持与bagging相同)
  • 特征选取随机。假设训练数据有M个特征,随机森林的每一颗树只选取m(m< M)个特征用于构建决策树。每一颗树选取的特征可能都不完全相同,因此可以降低模型的方差。正因为可以减小方差,因此随机森林一般不需要额外做剪枝,即可以取得较好的泛化能力和抗过拟合能力(Low Variance)。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些(High Bias),仅仅是相对的

2. 特征选择

2.1 袋外错误率(oob error)

  上面我们提到,构建随机森林的关键问题就是如何选择最优的m个特征,要解决这个问题主要依据计算袋外错误率oob error(out-of-bag error)。

  我们知道,在构建每棵树时,我们对训练集使用了不同的bootstrap sample(随机且有放回地抽取)。所以对于每棵树而言(假设对于第k棵树),大约有1/3的训练实例没有参与第k棵树的生成,它们称为第k棵树的oob样本。

  而这样的采样特点就允许我们进行oob估计,它的计算方式如下:

而这样的采样特点就允许我们进行oob估计,它的计算方式如下:

  (note:以样本为单位)

  1)对每个样本,计算它作为oob样本的每一颗树对它的分类情况(约1/3的树);

  2)然后以简单多数投票作为该样本的分类结果;

  3)最后用误分个数占样本总数的比率作为随机森林的oob误分率。

2.2 特征重要性

上面介绍了oob错误率的计算原理,现在介绍如何利用oob错误率来进行特征重要性的度量

1)按照2.1计算随机森林的初始袋外错误率,为errOOB1

2)随机地对袋外数据OOB所有样本的特征X加入噪声干扰(就可以随机的改变样本在特征X处的值),再次计算随机森林的袋外数据误差,记为errOOB2.

3)特征X的重要性errOOB2-errOOB1,之所以可以用这个表达式来作为相应特征的重要性的度量值是因为:若给某个特征随机加入噪声之后,袋外的准确率大幅度降低,则说明这个特征对于样本的分类结果影响很大,也就是说它的重要程度比较高

2.3 特征选择

1)计算每个特征的重要性,并按降序排序
2)确定要剔除的比例,依据特征重要性剔除相应比例的特征,得到一个新的特征集
3)用新的特征集重复上述过程,直到剩下m个特征(m为提前设定的值)。
4)根据上述过程中得到的各个特征集和特征集对应的袋外误差率,选择袋外误差率最低的特征集。​

3. 优缺点

3.1 优点

  • 随机森林的既可以用于回归也可以用于分类任务;
  • 它能够处理很高维度(feature很多)的数据,并且不用做特征选择;
  • 在训练完后,它能够给出哪些feature比较重要(个人理解是因为在建立随机森林的过程中特征的选取是随机的,在选择特征的过程中需要对特征进行重要性度量,选取较为重要的特征来训练)
  • 训练速度快,可以运用在大规模数据集上;
  • 由于每棵树可以独立、同时生成,容易做成并行化方法;
  • 每个树选取使用的特征时,都是从全部m个特征中随机产生的,本身已经降低了过拟合的风险和趋势。。

3.2 缺点

  • 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合
  • )取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果

你可能感兴趣的:(机器学习)