使用插入符的 R 中个体 类 的可变重要性

Variable Importance for Individual classes in R using Caret

我使用随机森林来预测 classes。现在,我正在尝试为每个 class 绘制变量重要性。我使用了下面的代码,但它并没有为我提供 varImp class 明智的,它为我提供了整个模型。谁能帮帮我。

谢谢。

odFit = train(x = df_5[,-22], 
              y = df_5$`kpres$cluster`,
              ntree=20,method="rf",metric = "Accuracy",trControl = control,tuneGrid = tunegrid
              )
odFit

varImp(odFit)

只需在train函数中添加importance=TRUE,与randomForest包中的importance(odFit)相同。

这是一个可重现的例子:

library(caret)
data(iris)

control <- trainControl(method = "cv",10)
tunegrid <- expand.grid(mtry=2:ncol(iris)-1)
odFit = train(x = iris[,-5], 
              y = iris$Species,
              ntree=20,
              trControl = control,
              tuneGrid = tunegrid,
              importance=T
)
odFit

varImp(odFit)

这是输出

rf variable importance

  variables are sorted by maximum importance across the classes
             setosa versicolor virginica
Petal.Width   57.21     73.747    100.00
Petal.Length  61.90     79.981     77.49
Sepal.Length  20.01      2.867     40.47
Sepal.Width   20.01      0.000     15.73

您可以使用 ggplot

绘制变量重要性
library(ggplot2)
vi <- varImp(odFit,scale=T)[[1]]
vi$var <-row.names(vi) 
vi <- reshape2::melt(vi)

ggplot(vi,aes(value,var,col=variable))+
  geom_point()+
  facet_wrap(~variable)