随机森林的rfcv方法是否真的会指出它选择了哪些特征?

我想在创建一个包含更多树的最终随机森林之前,使用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)

会给你每个变量的相对重要性。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注