3

我正在处理一个大型数据集,因此希望删除无关变量并调整每个分支的最佳 m 变量。在 R 中,有两种方法,rfcv 和 tuneRF,可以帮助完成这两个任务。我正在尝试将它们组合起来以优化参数。

rfcv 的工作原理大致如下:

create random forest and extract each variable's importance;
while (nvar > 1) {
    remove the k (or k%) least important variables;
    run random forest with remaining variables, reporting cverror and predictions
}

目前,我已将 rfcv 重新编码为如下工作:

create random forest and extract each variable's importance;
while (nvar > 1) {
    remove the k (or k%) least important variables;
    tune for the best m for reduced variable set;
    run random forest with remaining variables, reporting cverror and predictions;
}

当然,这会将运行时间增加一个数量级。我的问题是这是多么必要(使用玩具数据集很难得到一个想法),以及是否可以预期任何其他方式在更短的时间内大致同样有效。

4

1 回答 1

11

与往常一样,答案是取决于数据。一方面,如果没有任何不相关的特征,那么您可以完全跳过特征消除。随机森林实现中的树构建过程已经尝试选择预测特征,这为您提供了一些针对无关特征的保护。

Leo Breiman 发表了一次演讲,他将 1000 个不相关的特征引入到一些医学预测任务中,而这些任务只有少数来自输入域的真实特征。当他使用一个变量重要性过滤器消除 90% 的特征时,随机森林的下一次迭代没有选择任何不相关的特征作为其树中的预测变量。

于 2012-08-13T23:49:18.580 回答