Notes of Machine Learning

随机森林(ESL笔记)

15.1 简介

Bagging 或者 bootstrap aggregation(8.7节)是减少方差方法。Bagging貌似在高方差、低偏差的子分类器(过拟合)上work well,比如树。对于回归而言,我们简单地拟合一些回归树,然后对结果求平均。对于分类而言,每棵树投票,得到最终的结果。

在第10章,Boosting也以committee的方法被提出来,不像bagging,弱分类器不断进化,然后每个成员投出一个带权的票。Boosting在大部分问题上都比bagging占优势,并且变成更好的选择。

随机森林是本质上是bagging的改进版,构建很多不相关的树,然后对它们取平均。在很多问题上,随机森林的性能跟Boosting类似,他们的训练和调参都很简单。因此,随机森林很流行,并有很多版本的实现。

15.2 定义

Bagging的本质思想是对噪声取平均但近似无偏差的模型,所以能降低方差。树是bagging的理想的候选者,因为它们能捕获数据中复杂的相互关系,能生长地足够深,具有相对较低的偏差。因为树是众所周知地对噪声很敏感,很大程度上得益于取平均。

此外,在bagging中的每个树是恒等分布(identically distributed)的,个树的平均期望和每一个数分别的期望是一样的。意思是,装袋的树的偏差和每个树的偏差是一样的,剩下的改进就是降低方差了。这个和boosting不一样,boosting中树的生长是以不断适应的方式去去除偏差,所以不是恒等分布的。

如果每棵树的方差是,那么B棵树的均方差为。如果这些方差是简单的恒等分布(恒等分布但不必是独立的)和正相关系数,那么B棵树的平均方差为

当B增加时,第二项消失,只剩下第一项,所以树的个数限制了取平均的优势。

随机森林的思想是,通过降低树之间的相关性来降低bagging的方差,同时使方差不增加得太多。这是通过在生成树的过程中,随机选取输入数据得到的。

特别地,当在数据集上生成树时:

在每一次划分前,随机从 个输入变量中选 个()。典型的取值是,或者甚至取.

当 B 个这样的树生成之后,随机森林的预测是:

在10.9节中,表示第 个树相关的划分变量、每个节点的分割点和叶子节点的值。

直观地,降低 棵树之间的相关性,并且降低(图15.1)的平均的方差。

不是所有的estimator都能通过摇匀数据来进行改进。高度非线性的estimator可以做到,例如tree。对于boosting中的树,一般很小(0.05或更小),方差不是很大。另一方面,bagging不改变线性估计,例如简单的均值。

15.3 细节

当用作分类时,随机森林从每棵树获得一个打分,选择打分最高的那个叶子节点;当用作回归时,对于每个预测值求平均即可。

  • 用作分类时,默认取 ,最小取1;
  • 用作回归时,默认取 / 3,最小取5

实际上,最好的取值要视具体问题而定,m就是一个可调的参数。

15.3.1 带外数据(OOB,Out of Bag)

随机森林的一个重要的特性是袋外数据的用法。

OOB的误差估计几乎和N-fold交叉验证等价。当OOB误差稳定时,训练就可以终止了。如图15.4所示,虽然2500棵树的时候表现很好,但是200棵的时候已经足够了。

对于已经生成的随机森林,用袋外数据测试其性能,假设袋外数据总数为,用这个袋外数据作为输入,带进之前已经生成的随机森林分类器,分类器会给出个数据相应的分类,因为这条数据的类型是已知的,则用正确的分类与随机森林分类器的结果进行比较,统计随机森林分类器分类错误的数目,设为,则袋外数据误差大小 ;这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计

15.3.2 特征的重要性

可以与Gradient-boosted模型一样的方式来为随记森林构建变量重要性的图。 随记森林中某个特征的重要性的计算方法如下:

  1. 对于随机森林中的每一颗决策树,使用相应的OOB(袋外数据)数据来计算它的袋外数据误差,记为.

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

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

15.3.3 Proximity Plots

15.3.4 Overfitting

当变量的个数很多时,但相关变量很少时,取值很小的随记森林有可能表现很差。在每一次划分的时候,相关变量被同时取到的可能性很小。

另外一种观点认为:随记森林不会过拟合。事实上,增加并不会导致随记森林序列过拟合;就像bagging,随记森林的估计近似如下期望:

上的realizations。这里的分布是再训练数据上有条件的。然而,这个限制会过拟合数据,fully-grown trees的平均会过于丰富模型,引发不必要的方差。Segal(2014)表示,限制每棵树的深度,能小幅提升随机森林的性能。我们的经验是,用full-grown trees并不会损失太多性能,但会少调一个参数。

15.4 随机森林的分析

待续。。。

附加:特征选择

在论文 Variable Selection using Random Forests中详细的论述了基于随机森林的特征选择方法,这里我们进行一些回顾。

首先特征选择的目标有两个:

  1. 找到与因变量高度相关的特征变量。
  2. 选择出数目较少的特征变量并且能够充分的预测应变量的结果。

其次一般特征选择的步骤为:

1.初步估计和排序

a)对随机森林中的特征变量按照VI(Variable Importance)降序排序。

b)确定删除比例,从当前的特征变量中剔除相应比例不重要的指标,从而得到一个新的特征集。

c)用新的特征集建立新的随机森林,并计算特征集中每个特征的VI,并排序。

d)重复以上步骤,直到剩下个特征。

2.根据1中得到的每个特征集和它们建立起来的随机森林,计算对应的袋外误差率(OOB err),将袋外误差率最低的特征集作为最后选定的特征集。

参考文献

  1. PDF:Elements of Statistical Learning
  2. 随机森林之特征选择