Я использую функцию varImp(model, scale = FALSE) для мультикласса и получил результат из 20 наиболее важных переменных с тремя столбцами, поскольку существует три класса. В настоящее время он отсортирован по первому столбцу, но есть ли способ отсортировать его по второму столбцу? Я попытался отсортировать его и преобразовать в фрейм данных, это не работает: невозможно принудить класс «varImp.train» к фрейму данных.
Как отсортировать другой столбец из функции varImp в R
comment
Можете ли вы предоставить воспроизводимый пример и показать ожидаемый результат для него?
- person Ronak Shah   schedule 06.11.2020
Ответы (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
person
StupidWolf
schedule
06.11.2020
Большое спасибо!
- person musik lover; 07.11.2020