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

Tidymodels:如何基于运行结果过滤workflowsets对象

你可以通过 rank_results() 结合 dplyr 筛选 + 半连接的链式操作实现需求,全程不需要额外定义中间变量,写法非常简洁。

仅提取符合条件的指标结果

如果你只需要拿到满足 roc_auc >= 0.8 的指标明细,直接筛选即可:

library(tidyverse)
library(tidymodels)

filtered_auc_res <- rank_results(titanic_models_result, rank_metric = "roc_auc") %>%
  filter(.metric == "roc_auc", mean >= 0.8)

保留完整workflowset对象结构

如果你需要保留原workflowset的info、option、result列结构,方便后续继续调优/提取模型,用半连接关联筛选结果即可:

filtered_workflows <- titanic_models_result %>%
  semi_join(
    # 先筛选出符合条件的工作流ID
    rank_results(., rank_metric = "roc_auc") %>%
      filter(.metric == "roc_auc", mean >= 0.8),
    by = "wflow_id"
  )

如果需要只保留每个工作流的最优参数组合满足阈值的工作流,可以在筛选时增加按最优指标排序的逻辑:

filtered_best_workflows <- titanic_models_result %>%
  semi_join(
    rank_results(., rank_metric = "roc_auc") %>%
      filter(.metric == "roc_auc") %>%
      group_by(wflow_id) %>%
      slice_max(mean, n = 1) %>% # 取每个工作流最高的roc_auc值
      ungroup() %>%
      filter(mean >= 0.8),
    by = "wflow_id"
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:27:03