【问题标题】:How to sort a different column from varImp function in R如何从R中的varImp函数对不同的列进行排序
【发布时间】:2021-02-18 21:30:01
【问题描述】:

我将 varImp(model, scale = FALSE) 函数用于多类,并得到 20 个最重要变量的结果,其中包含三列,因为有三个类。 目前是按照第一列排序的,但是有没有办法按照第二列排序?我尝试对其进行排序并转换为数据帧,但它不起作用:无法将类“varImp.train”强制转换为数据帧。

【问题讨论】:

  • 你能提供一个可重现的例子并显示它的预期输出吗?

标签: r random-forest r-caret


【解决方案1】:

我的猜测是您使用的是带有插入符号的 randomForest,否则 varImp() 函数将不起作用。

请在您的问题中提供此信息。

因此您可以存储 varImp() 结果并进行排序:

library(caret)
rf = train(Species ~ .,data=iris,method="rf",trControl=trainControl(method="cv"),importance=TRUE)

varImp(rf,scale=FALSE)
rf variable importance

  variables are sorted by maximum importance across the classes
             setosa versicolor virginica
Petal.Length 22.013    33.4341    27.738
Petal.Width  22.454    32.3445    30.897
Sepal.Length  6.649     8.6931     8.569
Sepal.Width   4.420    -0.8063     3.560

res = varImp(rf,scale=FALSE)$importance

按第二列排序,

res[order(res$versicolor,decreasing=TRUE),]

                setosa versicolor virginica
Petal.Length 22.013431  33.434069 27.738319
Petal.Width  22.453571  32.344497 30.897214
Sepal.Length  6.649072   8.693132  8.569421
Sepal.Width   4.419712  -0.806256  3.559570

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2020-07-04
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
相关资源
最近更新 更多