如何在tidymodels中结合workflow_map提取调优参数?
解决tidymodels中workflow_set调优后提取cost_complexity参数的问题
当使用workflow_set和workflow_map完成调优后,直接调用collect_metrics(model_set)只会返回聚合后的指标数据,不会包含cost_complexity这类调优参数。可以通过以下两种方法正确提取:
方法1:提取单个workflow的调优结果并收集指标
直接操作model_set的result列,获取每个workflow的tune_results对象后调用collect_metrics(),即可得到带调优参数的完整指标:
library(tidyr) model_set %>% mutate(detailed_metrics = map(result, collect_metrics)) %>% unnest(detailed_metrics)
该结果会保留wflow_id用于区分不同建模流程,同时包含cost_complexity、指标类型、均值等完整数据。
方法2:展开交叉验证的原始指标数据
如果需要查看每个交叉验证折的详细结果,可以逐层展开result列中的.metrics列表:
model_set %>% select(wflow_id, result) %>% unnest(result) %>% unnest(.metrics)
这种方式会输出每个折对应的cost_complexity参数和指标估计值,适合需要分析不同折差异的场景。
内容的提问来源于stack exchange,提问作者Victor Feagins
相关产品推荐
相关产品推荐

