如何提取底层模型对象?解决extract_parameter_dials参数报错
问题解决:extract_parameter_dials报错与底层模型提取
一、解决extract_parameter_dials报错
报错核心是extract_parameter_dials()必须指定单个参数名称作为输入,你调用时未传入具体参数名,导致函数无法确定要提取的目标。
修正方式:
- 若要查看工作流中所有参数的配置集合,使用
extract_parameter_set_dials()替代:
nyc_flow_glm |> workflows::extract_parameter_set_dials()
- 若要提取某一特定参数的dial配置,传入参数名(如
penalty或mixture):
# 提取penalty参数的dial信息 nyc_flow_glm |> workflows::extract_parameter_dials("penalty") # 提取mixture参数的dial信息 nyc_flow_glm |> workflows::extract_parameter_dials("mixture")
补充:你当前的模型中penalty和mixture都设为了固定值(0),如果后续需要参数调优,应该用dial对象定义参数范围,示例:
nyc_glm <- linear_reg(penalty = tune(), mixture = tune()) |> set_engine("glmnet")
二、提取底层模型对象
训练完成的工作流nyc_fit中,可通过以下函数获取不同层级的模型对象:
- 提取Parsnip拟合对象(包含模型元数据与拟合结果):
nyc_fit_parsnip <- nyc_fit |> workflows::extract_fit_parsnip()
- 提取glmnet原生模型对象(可直接使用glmnet包的函数操作,比如查看系数):
nyc_fit_glmnet <- nyc_fit |> workflows::extract_fit_engine() # 查看模型系数 coef(nyc_fit_glmnet)
内容的提问来源于stack exchange,提问作者AgentCircus
相关产品推荐
相关产品推荐

