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

Tidymodels网格调参后如何提取训练集特征重要性

随机森林网格搜索后提取训练集特征重要性方法

tune_grid() 仅存储交叉验证各折的参数评估结果,不会保留全量训练集拟合的最终模型,因此无法直接从调参结果对象中提取特征重要性。你需要先将选出的最优参数注入工作流,在完整训练集上完成最终模型拟合,再提取重要性值,具体步骤如下:

  • 注入最优参数,生成最终模型工作流
# 将选好的最优mtry、min_n参数更新到原工作流中
final_rfc_workflow <- rfc_workflow %>%
  finalize_workflow(best)
  • 在全量训练集上拟合最终模型
# 用全部训练数据训练参数最优的随机森林模型
final_rfc_model <- final_rfc_workflow %>%
  fit(data = train)
  • 提取特征重要性
    你已经在ranger引擎中设置了importance = "impurity",拟合后的模型会自动存储基于节点不纯度计算的特征重要性,推荐用vip包的vi()函数直接获取规整的表格格式结果:
library(vip)
# 获取格式化的特征重要性表,包含特征名、重要性值两列
train_feature_importance <- final_rfc_model %>%
  # 提取parsnip封装的模型对象
  extract_fit_parsnip() %>%
  # 提取特征重要性
  vi()

如果需要读取原始的重要性向量,可以直接提取ranger引擎的内部字段:

raw_importance_vector <- final_rfc_model %>%
  # 提取底层ranger原生模型对象
  extract_fit_engine() %>%
  # 拉取变量重要性字段
  pluck("variable.importance")

说明:你看到的last_fit()方法是封装了「训练集拟合+测试集评估」的快捷函数,本质上提取特征重要性的逻辑和上述方法完全一致,都需要先拿到在全量训练集上拟合好的最终模型对象,再读取引擎存储的重要性值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:57:36