随机森林简单介绍
当一组预测变量和响应变量之间的关系非常复杂时,我们经常使用非线性方法对它们之间的关系进行建模。
其中一种方法是 分类和回归树(通常缩写为 CART),它使用一组预测变量来创建预测响应变量值的决策树。
决策树的优点是易于解释和可视化。问题是它们往往会遭受 高方差的影响。也就是说,如果我们将数据集分成两半并将决策树应用于两半,结果可能会非常不同。
减少决策树方差的一种方法是使用称为bagging的方法,其工作原理如下:
1.从原始数据集中获取b 个引导样本。
2.为每个引导样本创建决策树。
3.对每棵树的预测进行平均以获得最终模型。
这种方法的优点是,与单个决策树相比,集群模型通常可以提高测试错误率。
缺点是,如果数据集中存在非常强的预测变量,则袋装树集合的预测可能会高度相关。在这种情况下,大多数或所有袋装树将使用此预测器进行第一次分割,从而产生彼此相似且具有高度相关预测的树。
因此,当我们对每棵树的预测进行平均以得出最终模型时,与单个决策树相比,该模型实际上可能并没有减少方差。
解决这个问题的一种方法是使用一种称为随机森林的方法。
什么是随机森林?
与装袋类似,随机森林也从原始数据集中获取引导样本。
然而,当为每个 bootstrap 样本构建决策树时,每次考虑树中的拆分时,只有m个预测变量的随机样本被视为在p 个预测变量的完整集合中进行拆分的候选者。
这是随机森林用来创建模型的完整方法:
1.从原始数据集中获取b 个引导样本。
2.为每个引导样本创建决策树。
- 构建树时,每次考虑拆分时,仅将m 个预测变量的随机样本视为从p 个预测变量的完整集合中进行拆分的候选者。
3.对每棵树的预测进行平均以获得最终模型。
使用这种方法,随机森林中的树木集合会根据装袋产生的树木进行装饰。
因此,当我们从每棵树中进行平均预测来得出最终模型时,它往往具有较小的可变性,并且比袋装模型具有更低的测试错误率。
使用随机森林时,每次分割决策树时,我们通常将m = √ p预测变量视为分割候选者。
例如,如果数据集中总共有p = 16 个预测变量,我们通常只考虑m = √16 = 4 个预测变量作为每个分割的潜在候选变量。
技术说明:
有趣的是,如果我们选择m = p (即我们将所有预测变量视为每次分割的候选变量),这相当于使用 bagging。
袋外错误估计
与装袋类似,我们可以使用袋外估计来计算随机森林模型的测试误差。
可以看出,每个 bootstrap 样本包含原始数据集中大约 2/3 的观测值。其余三分之一未用于拟合树的观测值称为袋外 (OOB) 观测值。
我们可以通过从 OOB 观测值的每棵树中获取平均预测来预测原始数据集中第 i 个观测值的值。
我们可以使用这种方法对原始数据集中的所有n 个观测值进行预测,从而计算错误率,这是测试误差的有效估计。
使用这种方法估计测试误差的优点是它比k 倍交叉验证快得多,特别是当数据集很大时。
随机森林的优点和缺点
随机森林具有以下优点:
- 在大多数情况下,随机森林将比袋装模型(尤其是单个决策树)提供更高的准确性。
- 随机森林对异常值具有鲁棒性。
- 使用随机森林不需要预处理。
然而,随机森林有以下潜在缺点:
- 它们很难解释。
- 它们在利用大型数据集时可能需要大量计算(即速度较慢)。
在实践中,数据科学家通常使用随机森林来最大限度地提高预测准确性,因此它们不易解释的事实通常不是问题。