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

如何在randomForestSRC的变量重要性图中仅显示All类别的结果?

仅展示randomForestSRC中All类别的变量重要性图

你可以直接从拟合好的模型对象里提取All类别的重要性得分,手动绘制图表——默认的plot()方法会把所有类别(包括各分类和All)都展示出来,官方确实没给直接只显示All的参数,手动提取数据是最直接的解决办法:

先修正代码里的包加载问题

你的代码开头加载的是class包,但实际用到的是randomForestSRC,先改过来:

library(randomForestSRC)

fit <- rfsrc(as.factor(DEFAULT) ~ .,
             data = CD, 
             ntree = 1000, 
             importance = TRUE,
             nsplit = 5)

提取All类别重要性并绘图

模型拟合完成后,fit$importance是个矩阵,行是变量,列包含各个分类和All,直接提取All列就能得到你要的数据:

用基础绘图实现

# 提取All类别的重要性得分
all_var_imp <- fit$importance[, "All"]
# 按得分降序排序
sorted_imp <- sort(all_var_imp, decreasing = TRUE)
# 绘制横向条形图(方便显示长变量名)
barplot(sorted_imp,
        las = 1,
        horiz = TRUE,
        main = "变量重要性(All类别)",
        xlab = "重要性得分",
        col = "#4682B4")

用ggplot2实现(更美观)

library(ggplot2)

# 转成数据框并排序
imp_df <- data.frame(
  变量 = names(all_var_imp),
  重要性得分 = all_var_imp
) %>% 
  arrange(desc(重要性得分))

ggplot(imp_df, aes(x = reorder(变量, 重要性得分), y = 重要性得分)) +
  geom_col(fill = "#4682B4") +
  coord_flip() +
  labs(title = "变量重要性(All类别)",
       x = "变量",
       y = "重要性得分") +
  theme_bw()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:45:31