You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R提取二分类模型中恶性类的变量重要性并转为数据框

把caret变量重要性结果转为数据框(针对恶性类)

当你用varImp()获取到针对恶性类的变量重要性后,直接提取结果对象中的$importance字段即可得到基础数据框,再通过简单整理就能得到包含变量名和对应重要性分数的清晰结构:

基础实现(Base R)

在你现有代码的print(var_imp_sens)之后添加以下代码:

# 提取恶性类的变量重要性数据
var_imp_df <- as.data.frame(var_imp_sens$importance)
# 添加变量名列并重置行名
var_imp_df <- data.frame(
  Variable = rownames(var_imp_df),
  Malignant_Importance = var_imp_df$malignant,
  row.names = NULL
)
# 查看结果
print(var_imp_df)

用dplyr简化(可选)

如果你习惯用tidyverse工具,可以更简洁地整理:

library(dplyr)
library(tibble)

var_imp_df <- var_imp_sens$importance %>%
  rownames_to_column("Variable") %>%
  rename(Malignant_Importance = malignant)

补充说明

  • varImp()返回的VarImp对象中,$importance本身就是一个数据框,行对应变量名,列对应指定类(这里是malignant)的重要性分数。
  • 如果你想同时保留两个类的重要性,只需去掉class = "malignant"参数,再按同样方式提取整理即可。
  • 你的循环最后一次迭代是训练rf模型,所以当前var_imp_sens是针对随机森林模型的结果;如果需要获取knn模型的变量重要性,需要在循环内分别保存每个模型的varImp结果。

内容的提问来源于stack exchange,提问作者thole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:03:13