我正在观看关于随机森林的以下教程,它说,“在每个节点,选择 m 个特征的随机子集,只考虑对这些特征进行拆分”我不明白为什么我们选择 m 个特征。为什么我们不考虑所有功能?
例如,在特征是身高、体重、年龄且 m 为 2 的情况下,随机子空间可以是身高和体重吗?这是如何运作的?
先感谢您!
我正在观看关于随机森林的以下教程,它说,“在每个节点,选择 m 个特征的随机子集,只考虑对这些特征进行拆分”我不明白为什么我们选择 m 个特征。为什么我们不考虑所有功能?
例如,在特征是身高、体重、年龄且 m 为 2 的情况下,随机子空间可以是身高和体重吗?这是如何运作的?
先感谢您!
实际上,Leo Breiman 的一篇较早的论文(早于“随机森林”术语)考虑了您所建议的所有特征[Breiman 1996]。以下是本文的一些相关节选。首先,一些符号:
的学习集由数据组成,其中是类标签或数值响应。假设我们有一个使用这个学习集来形成预测器的过程——如果输入是我们通过
bagging(以及,通过扩展,随机森林)背后的想法是随机构造许多不同的预测变量并将这些人口预测变量聚合成一个预测变量,表示为,它通常具有优于任何单个预测变量的性能。通过在原始训练集的引导样本而不是整个上构建每个预测器来添加随机性。正如 Gavin Simpson 所提到的,选择一个随机的特征子集为单个预测变量的构建增加了更多的随机性。Breiman (1996) 写道:
bagging 是否会提高准确性的一个关键因素是构造的过程的稳定性。如果[bootstrap] 复制,中产生小的变化,则将接近。对于不稳定的过程,的微小变化可能导致的大变化,将出现改进。. . 实验和理论的证据是,bagging 可以推动一个好的但不稳定的程序朝着最优迈出重要一步。另一方面,它会稍微降低稳定程序的性能。[强调添加]
然后,该论文继续提供上述理论和实验证据。Breiman 对随机森林的开创性描述(Breiman, 1999)归功于 Tim Kam Ho 开发了“随机子空间方法”,该方法通过选择个随机特征来生长每棵树(而不是每个节点)来增加额外的不稳定性。不幸的是,最初的出版物(Ho,1998)似乎在付费墙后面。
最后一点——一个有趣的问题是为选择什么?也就是说,我们应该为每个节点选择多少个随机特征来拆分?Breiman (1999) 中有一节专门讨论这个问题。基本结论是,选择并不重要,只要与特征总数相比相对较小。
就像用可用数据的随机子集样本(引导样本)拟合森林中的每棵树一样,增加了随机性以改善样本外拟合(通过减少误差的方差分量),在其中选择个变量也是如此搜索每个拟合添加随机性。与没有随机选择变量的情况相比,额外的随机性使每棵树成为更差的模型,这就是随机森林如何在单个树或 bagging 上实现更低的错误,这是没有随机选择个变量的随机森林。