randomForest 变量重要性值在不同日期的相同变量之间是否具有可比性?

机器算法验证 r 数据挖掘 特征选择 随机森林
2022-04-08 20:14:50

randomForest 变量的重要性在不同日期的相同变量之间是否具有可比性?

我有一个数据数组 X ,其大小为,其中T×N×KT=1500N=1500K=10

物理上,第一个索引表示天,而第二个索引表示位置,第三个索引表示测量的个特征/变量每天在每个位置。1,2,,T1,2,,N1,2,,KK

因变量是另一个数组,其大小为YT×N

现在我randomForest在每个日期运行:

library(randomForest)

importanceValues=matrix(0, T, 10)

for (i in 1:T)

{
    y=Y[i, ]

    x1=X[i, ,1]
    x2=X[i, ,2]
    x3=X[i, ,3]
    x4=X[i, ,4]
    x5=X[i, ,5]
    x6=X[i, ,6]
    x7=X[i, ,7]
    x8=X[i, ,8]
    x9=X[i, ,9]
    x10=X[i, ,10]

    rf=randomForest(y~x1+x2+x3+x4+x5+x6+x7+x8+x9+x10, importance=T, na.action=na.omit)

    importanceValues[i, ]=rf$importance[, 2]

}

如您所见,我可以获得跨日期的变量重要性值:

例如,在上面的最后一个日期,我们有:

> rf$importance
                          %IncMSE      IncNodePurity
x1                          311.0803     1113618.9
x2                         4627.7532     3415010.7
x3                         8527.4607     4916842.7
x4                         3507.1872     2919601.3
x5                         2982.0577     2907352.5
x6                         5673.6522     5247811.5
x7                         3893.7793     3618126.4
x8                          135.2311      248212.5
x9                         1759.8080     2334093.9
x10                         852.3294     1562279.1

我的问题是:

  1. 哪个更有用?(IncMSE 还是 IncNodePurity?)
  2. 我如何向非数据挖掘者解释什么是“IncNodePurity”?
  3. “IncNodePurity”列的单位是什么?我可以跨日期比较这些数字吗?
  4. 一个日期,例如 2008 年 9 月 18 日,大多数“IncNodePurity”数字远大于另一个日期,例如 2012 年 6 月 1 日。关于这两个不同日期的数据集,我能说些什么?(它们是在不同日期对相同变量的不同观察)

谢谢!

1个回答

广告1. IncMSE是cross-bag测试的实际结果,所以理论上它优于训练副产品IncNodePurity。

广告 3. 和 4.老实说,这些值有一定的意义——它们取决于当前测试中 RF 的好坏程度,而这是非常可变的。如果您想比较任何东西,请比较根据该数据计算的排名。

广告 2.这样,将两个度量的含义推到更远,而不仅仅是重要性分数,这是相当虚假的。