随机森林中特征和数据的选择

数据挖掘 数据集 特征选择 随机森林
2022-03-07 22:15:43

首先,我很困惑是否在所有树的每个节点上,我们是从批次中随机挑选特征以进行最佳分割,还是每棵树都获得一个随机的特征子集,然后该树中的所有节点都必须使用那些特点?

现在,无论我们是在树级别还是节点级别选择随机特征,为什么要为每棵树选择随机数据子集?因为如果树/节点级别的特征不同,树就会不同。为什么我们需要添加另一个级别并使数据的分布也随机分布到树中,而不仅仅是将完整的原始数据集提供给树。

2个回答

首先,我很困惑是否在所有树的每个节点上,我们是从批次中随机挑选特征以进行最佳分割,还是每棵树都获得一个随机的特征子集,然后该树中的所有节点都必须使用那些特点?

m 特征是在树的每次分裂时随机选择的,而不是在树本身的创建时。

现在,无论我们是在树级别还是节点级别选择随机特征,为什么要为每棵树选择随机数据子集?因为如果树/节点级别的特征不同,树就会不同。为什么我们需要添加另一个级别并使数据的分布也随机分布到树中,而不仅仅是将完整的原始数据集提供给树?

这正是随机森林与其他算法相比独一无二的原因。实际上,我们从训练数据集中进行替换(引导程序)采样,并且每个引导程序样本对于每棵树都是唯一的(您似乎理解)。

但是,我们首先需要考虑最终预测是如何从随机森林中得出的。的最终预测将是森林中所有树的平均预测概率。这应该是可行的,因为在树之间零/负相关的(关键)假设下,我们知道样本均值的方差随着 n 趋于无穷大而趋于零。这是随机森林的一个关键要素;如果我有一堆过拟合的树(低偏差,高方差),我可以通过结合每棵树的预测和平均来简单地摆脱每棵树的这种高方差。对于我的最终组合模型,希望结果是低偏差和足够低的方差。yi

但是,如果树之间存在正相关,则样本均值的方差实际上会增加(如 ),如果 n 足够大,则树之间的协方差实际上开始支配每棵树本身的方差. 与仅使用单个(或相对较少的)树相比,这导致预测性能下降。毕竟,重点是拟合低偏差、高方差的基学习器,然后通过平均来减少方差。如果我们现在由于基础学习器之间的相关性而无法减少方差(并开始增加它!),我们的模型可能会严重过度拟合,甚至比使用相对较少过拟合的基础学习器还要严重。n

所以问题变成了……我们如何减少树之间的相关性?一种解决方案是不仅通过数据样本本身(即带替换的引导/样本)而且通过在节点的每个拆分处随机选择预测变量来引入随机性。通过这样做,我们希望能强制每棵树学习关于数据的不同内容。事实上,如果只有少数几个预测器比机会有用,那么所有的树都会注意到这一点,并坚持一遍又一遍地使用这几个预测器。结果是所有的树都学到了完全相同的东西,树之间有很大的相关性,并且没有太大的目的一起使用这些树。

当我们拥有人们所说的“多样化的基础学习者”时,Bagging(即您所说的第一级随机性)和其他基于集成的方法效果最好。这意味着,一般来说,如果我们能找到许多性能相似但不相关的模型(也就是说,它们学习了不同但同样重要的数据部分),那么以某种方式组合模型几乎肯定会比使用要么一个人。创建模型多样性很困难,但有一些常见的方法;

1)做一些类似于随机森林的事情;给每个基础学习者一组不同的特征来使用。
2)使用不同的算法,由于它们的拟合方式不同,它们有望学习数据的不同部分;例如:随机森林+神经网络+梯度提升等。

完整的树获得一个随机的特征子集,然后在树级别使用它。

更正:

正确答案

正如这个答案中正确说明的那样,每个节点都有自己的随机特征选择。

您在第二段中提出的问题的解释是,这些树不是全局最优的,而是局部最优的。

之所以选择随机子集,是因为如果进行随机选择,则更有可能找到全局最优值。

举个例子:

  • 假设我们有一个包含年龄、性别、工资、婚姻状况和国籍的数据集。
  • 最优树总是未知的,但假设我们知道它并且是由路径Age-Gender-Salary构成的。
  • 随机森林所做的是在年龄、性别、工资、婚姻状况和国籍之间进行随机选择。正常的决策树所做的是选择所有特征来制作树。
  • 决策树选择这棵树:Salary-Marital Status-Age ALWAYS。为什么会有这个决策树?因为salary是局部最优的(第一步最好的变量),但是Salary-first-then-others不可能是最好的组合。
  • 随机森林选择了许多可能的变量组合,我们可以在其中找到最佳的年龄-性别-工资

随机森林的工作方式是尝试多种变量组合,其中一种可能是最优的。