带有R的随机森林:varImp(model)和model $ importance [,1]

时间:2019-01-22 09:56:38

标签: r random-forest

我对从R中用于RandomForest包以评估变量重要性的函数获得的不同结果感到困惑。

我的模型定义为:

model <- randomForest(nee_m ~ ., data = nee, ntree = 200, mtry = 7, importance=TRUE)

nee_m是主要变量,而8个解释变量分别是sw_in,ta,vpd,rew,rh,pluie,vent,co2。

这是我的结果: (1)使用varImp(model),%IncMSE的结果为:

      Overall 
     

ta 118.08770

     

rh 71.48408

     

vpd 62.24601

     

pluie 23.28636

     

vent 151.23066

     

sw_in 886.14511

     

二氧化碳208.20772

     

rew 305.57892

(2)使用model $ importance [order(model $ importance [,1],reduction = TRUE),]:结果为:

        %IncMSE IncNodePurity 
     

sw_in 43.12005718 1451599.722

     

vpd 4.70746641 201849.024

     

rew 4.16280001 189716.854

     

ta 4.02571339 121612.437

     

rh 2.73049849 102672.109

     

二氧化碳2.37747947 81391.062

     

vent 0.57235041 61368.274

     

pluie 0.02396995 2851.669

如果我按照(2)的降序排列(1)并计算相对值:我得到(3):

      Overall 
     

sw_in 48.522222%

     

赢得16.732438%

     

二氧化碳CO2 11.400730%

     

排放量8.2808645%

     

ta 6.4660714%

     

rh 3.914219%

     

vpd 3.408375%

     

pluie 1.275080%

(2)和(3)之间的值和重要性顺序不同,我应该相信哪些结果,为什么它们不同?我可能对了解结果一无所知。

预先感谢您的帮助

编辑: 非常奇怪的结果: 如果我设置为:varImp(model, scale = FALSE ),就值和顺序而言,我得到的结果与(2)完全相同!因此,该值介于0到100之间,与文档中所说明的相反:即,如果将scale = FALSE设置为该值,则该值不应介于0到100之间,而仅当您设置默认的varImp(model)时(或varImp(model,scale = TRUE),则应该在0到100之间... 这不是我在(3)中所拥有的... 那么,哪个结果有意义呢? 我真的很困惑...

0 个答案:

没有答案