随机森林 - 需要帮助理解 rfcv 函数

机器算法验证 r 交叉验证 随机森林 模型选择
2022-04-08 16:41:01

我当前的数据集有大约 900 条记录和 10 个特征。我正在尝试使用随机森林对一些数据进行分类。我当前的模型严重过度拟合数据,因此我正在尝试使用 rfcv 函数。我在理解这个函数的输出时遇到了一些麻烦。

这是一些示例代码

data(fgl, package="MASS")
tst <- rfcv(trainx = fgl[,-10], trainy = fgl[,10], scale = "log", step=0.7)

我可以从中打印一些输出,但我不确定如何解释这个?

        9         6         4         3         2         1 
0.2102804 0.2196262 0.2429907 0.2523364 0.3551402 0.5607477 

我也有重要性函数的日志

   MeanDecreaseGini
RI        23.358203
Na        15.901377
Mg        25.923452
Al        24.587295
Si        12.586816
K         13.731823
Ca        19.680839
Ba        14.206922
Fe         6.774196
1个回答

rfcv 函数根据预测变量的数量和“step”参数(默认值 = 0.5)创建多个模型。在您的情况下,您从 9 个预测变量开始,步长 = 0.7,对应于输出中的第一行

  • 第一个值 = 9,
  • 第二个值 = round(9(0.7)) = 6,
  • 第三个值 = round(6(0.7)) = 4,依此类推。

所以输出的第一行就是每个模型中使用的预测变量的数量。输出中的第二行是每个模型的交叉验证误差。很明显,随着预测变量数量的减少,误差通常会增加,但使用 9 个预测变量和使用 6 个预测变量之间的差异很小,这表明 6 个预测变量模型与 9 个预测变量模型差不多。