我想使用rfcv从数据集中剔除不重要的变量,然后再创建包含更多树的最终随机森林(请更正,如果这不是使用此功能的方式,请通知我)。例如,
> data(fgl, package="MASS")
> tst <- rfcv(trainx = fgl[,-10], trainy = fgl[,10], scale = "log", step=0.7)
> tst$error.cv
9 6 4 3 2 1
0.2289720 0.2149533 0.2523364 0.2570093 0.3411215 0.5093458
在这种情况下,如果我正确理解结果,似乎我们可以删除三个变量而没有负面影响。然而,
> attributes(tst)
$names
[1] "n.var" "error.cv" "predicted"
这些插槽都不能告诉我实际上可以从数据集中无害删除的前三个变量是什么。
最佳答案
我认为rfcv
的目的是确定准确性与您使用的变量数量之间的关系。当您有10个变量时,这似乎没什么用,但是当您有成千上万个变量时,了解这些变量“增加”了预测能力非常方便。
正如您可能发现的那样,此代码
rf<-randomForest(type ~ .,data=fgl)
importance(rf)
为您提供了每个变量的相对重要性。
关于r - R randomForest的rfcv方法实际上是否说出它选择了哪些功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11908582/