5

在创建具有更多树的最终随机森林之前,我想使用 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"

这些插槽都没有告诉我可以从数据集中无害地删除的前三个变量实际上是什么。

4

1 回答 1

9

我认为 的目的rfcv是确定您的准确性与您使用的变量数量之间的关系。当您有 10 个变量时,这似乎没有用,但是当您有数千个变量时,了解这些变量“增加”了多少预测能力非常方便。

您可能已经发现,这段代码

rf<-randomForest(type ~ .,data=fgl)
importance(rf)

为您提供每个变量的相对重要性。

于 2012-08-11T12:11:08.093 回答