为什么在使用 bagging 时树相关是一个问题?

机器算法验证 机器学习 自习 随机森林 大车 装袋
2022-03-11 19:24:24

我正在阅读 ISLR,但我不明白随机森林解决了什么问题;使用 bagging 时树相关性会导致哪些问题?

1个回答

我想通过首先概述 bagging 来回答这个问题。

在袋装树中,我们使用替换从数据集中重新采样观察结果并拟合一棵树。我们考虑重采样中的所有特征,并重复此过程n次。如果您曾经拟合过一个包含测试集的简单决策树,您会发现每次执行训练、测试拆分时,您的结果都会发生巨大变化。这种高方差是不可取的,因此我们考虑一个新数据集,它是原始数据集(引导样本)的子集。我们汇总所有n通过在回归器中平均或在分类器中通过多数投票来获得最终结果。

在这个 bagging 过程中我们没有考虑的一个问题是树的相似程度。虽然这些树之间的相关性有数学定义,但请考虑这个例子。

考虑我们数据集中的一个强大的预测器,它最大程度地减少了错误度量(例如:RSS)。我们所有的袋装树都倾向于进行相同的切割,因为它们都具有相同的特征。这使得所有这些树看起来非常相似,从而增加了相关性。

为了解决树相关性,我们允许随机森林仅随机选择m执行拆分的预测因子。现在袋装树都有不同的随机选择的特征来执行切割。因此,特征空间在不同的预测变量上被分割,对所有的树进行去相关。

执行随机森林时,如果您在数据集中设置 max_features=# 个特征(在 scikit learn 中,在 R 中为 mtry),您将构建一个袋装决策树模型。如果 max_features<# of features 我们将执行随机森林。在构建任何模型时调整此参数始终是一个好主意。