r - 从变量重要性排序输出(插入符号包)
问题描述
我正在构建一些逻辑回归模型,并发现自己使用了 caret 包中的 varImp('model name') 函数。这个函数很有用,但我希望变量重要性按从最重要到最不重要的顺序返回。
这是一个可重现的示例:
library(caret)
data("GermanCredit")
Train <- createDataPartition(GermanCredit$Class, p=0.6, list=FALSE)
training <- GermanCredit[ Train, ]
testing <- GermanCredit[ -Train, ]
mod_fit <- glm(Class ~ Age + ForeignWorker + Property.RealEstate +Housing.Own + CreditHistory.Critical, data=training, family=binomial(link = 'logit'))
当我使用代码时:
varImp(mod_fit)
它返回:
Overall
Age 1.747346
ForeignWorker 1.612483
Property.RealEstate 2.715444
Housing.Own 2.066314
CreditHistory.Critical 3.944768
我想按这样的“总体”列进行排序:
sort(varImp(mod_fit)$Overall)
它返回:
[1] 1.612483 1.747346 2.066314 2.715444 3.944768
有没有办法以降序返回变量名称和重要性级别?
先感谢您。
解决方案
library(caret)
data("GermanCredit")
Train <- createDataPartition(GermanCredit$Class, p=0.6, list=FALSE)
training <- GermanCredit[ Train, ]
testing <- GermanCredit[ -Train, ]
mod_fit <- glm(Class ~ Age + ForeignWorker + Property.RealEstate +Housing.Own + CreditHistory.Critical, data=training, family=binomial(link = 'logit'))
imp <- as.data.frame(varImp(mod_fit))
imp <- data.frame(overall = imp$Overall,
names = rownames(imp))
imp[order(imp$overall,decreasing = T),]
overall names 3.9234999 CreditHistory.Critical 3.1402835 Housing.Own 2.1955440 Age 1.3042088 ForeignWorker 0.4878837 Property.RealEstate
推荐阅读
- websphere - 在 Pyomo 中设置 VMCONFIG Cplex
- c# - 画廊中的图像未保存到位图
- ruby - 安装 Gem phashion 时出错:ld: library not found for -ljpeg
- groovy - 如何测试 Unirest 获得响应
- java - JSP Servlet 的 org.apache.jasper.JasperException
- kotlin - 按列名对表进行排序 Exposed Kotlin
- markdown - 如何为我的 Jekyll 博客文章分配索引?
- scala - 不支持密封特征 播放 JSON 2.9
- apache-kafka - 卡夫卡保证交付
- postgresql - 将来自 2 个不同表的 2 个不同列与 postgress 相加