如何基于Tidymodels提取次优调参参数对应的工作流?
提取第二优调参参数对应的工作流
可以通过以下步骤实现:
获取排序后的调参结果
用rank_results()对调参后的结果按指定指标排名,能清晰看到所有参数组合的排序:ranked_results <- rank_results(tune_object, rank_metric = "your_metric")把
your_metric替换成你实际用的评估指标(比如RMSE、Accuracy)。筛选第二优参数组合
从排名结果中提取排名为2的条目:second_best_params <- ranked_results %>% dplyr::filter(rank == 2)生成对应工作流并拟合
用finalize_workflow()将第二优参数应用到工作流,再拟合数据:second_best_workflow <- finalize_workflow(your_workflow, second_best_params) second_best_fit <- fit(second_best_workflow, data = your_data)
如果更倾向手动处理调参结果,也可以直接从调参对象的指标数据框筛选:
# 按目标指标排序结果(指标越小越好就用arrange(your_metric)) sorted_results <- tune_object$.metrics %>% dplyr::arrange(dplyr::desc(your_metric)) # 提取第二行的参数 second_best_params <- sorted_results[2, ] %>% dplyr::select(dplyr::starts_with("param_")) %>% as.list() # 生成第二优工作流 second_best_workflow <- finalize_workflow(your_workflow, second_best_params)
注意将代码里的tune_object、your_metric、your_workflow、your_data替换为你实际使用的对象和指标。
内容的提问来源于stack exchange,提问作者user2545517
相关产品推荐
相关产品推荐

