当选择的特征数量减少时,为什么随机森林OOB误差估计会提高?


14

我在微阵列数据集上应用随机森林算法作为分类器,将其分为两个已知的具有1000多个特征的组。初次运行后,我查看了这些功能的重要性,并使用5个,10个和20个最重要的功能再次运行树算法。 我发现,对于所有功能,前10位和前20位的OOB错误率估计为1.19%,而前5位功能的错误率为0%。 这对我来说似乎是违反直觉的,因此我想知道您是否可以解释我是否缺少某些内容或使用了错误的指标。

我在ntree = 1000,nodesize = 1和mtry = sqrt(n)中使用R中的randomForest包


2
明确一点:您是否以迭代方式应用RF,即从整个输入空间中选择排名靠前的功能(根据Gini指数或MSE的降低)?我知道RF不一定会随着树数的增加而改善,但是您所描绘的似乎是有道理的(最好的功能是可以100%准确地预测OOB样本),尽管这样做显然存在过度拟合的风险。
chl 2010年

是的,那就是我在做什么
danielsbrewer

2
@chl,您能解释一下为什么仅使用5个功能会导致过拟合的风险吗?
tashuhka 2014年

Answers:


15

这是特征选择过拟合,这是众所周知的-参见Ambroise&McLachlan 2002。该问题基于以下事实:RF太智能且对象数量太少。在后一种情况下,通常很容易随机创建可能与决策具有良好相关性的属性。而且当属性数量很大时,您可以肯定一些完全不相关的属性将是一个很好的预测变量,甚至足以构成一个集群,从而能够以100%的比例重新创建决策,尤其是当考虑射频。因此,很明显,当系统指示您查找属性的最佳子集时,FS过程会找到该群集。
A&McL提供了一种解决方案(CV),您也可以测试我们针对该主题的方法,即Boruta算法基本上从设计上扩展为具有随机属性的“阴影属性”,然后将它们的RF重要性与实际属性所获得的RF重要性进行比较,以判断其中哪些确实是随机的并且可以删除;这被多次复制才有意义。Boruta的目的是要完成一些不同的任务,但是据我的测试表明,结果集没有FS过拟合问题。


2

我认为我会为此模式添加一个直观的解释。

在包括随机森林的每个决策树中,数据沿单个维度迭代拆分。至关重要的是,此过程涉及

1)仅考虑所有解释变量的一小部分随机选择的子集,并且

2)在此随机选择的变量子集中选择最相关的解释变量以拆分数据。

因此,随着解释变量数量的增加,在任何特定节点上选择n个最重要变量的概率都会降低。因此,如果添加大量变量,这些变量几乎或几乎没有解释力,那么它将自动导致森林错误率的增加。相反,仅选择最重要的变量进行包含将很可能导致错误率降低。

随机森林对此非常健壮,通常需要大量添加这些“噪声”参数以显着降低性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.