返回所有模型或子模型的性能指标的一小部分。
用法
# S3 method for workflow_set
collect_metrics(x, summarize = TRUE, ...)
# S3 method for workflow_set
collect_predictions(
x,
summarize = TRUE,
parameters = NULL,
select_best = FALSE,
metric = NULL,
...
)
参数
- x
-
已使用
workflow_map()
求值的workflow_set
对象。 - summarize
-
性能估计是否应通过平均值(重新采样)或原始性能值(每次重新采样)进行汇总的逻辑应与重新采样标识符一起返回。收集预测时,如果多个评估集包含同一行,则对这些预测进行平均。
- ...
-
目前未使用。
- parameters
-
可选的调整参数值小标题,可用于在处理之前过滤预测值。该小标题应该只包含每个调整参数标识符的列(例如,如果使用
tune("my_param")
,则为"my_param"
)。 - select_best
-
是否保留数值上最佳结果的单一逻辑。如果
TRUE
,则忽略parameters
参数。 - metric
-
用于
select_best
的指标字符串。
细节
当应用于工作流集时,返回的指标和预测不包含实际的调整参数列和值(与这些收集函数在其他对象上运行时不同)。原因是工作流集可以包含不同类型的模型或具有不同调整参数的模型。
如果需要列,有两种选择。首先,.config
列可用于将调整参数列合并到适当的对象中。或者,map()
函数可用于从原始对象获取指标(请参见下面的示例)。
注意
该软件包提供两个预生成的工作流程集 two_class_set
和 chi_features_set
,以及适合 two_class_res
和 chi_features_res
的相关模型集。
two_class_*
对象基于使用 modeldata 包中的 two_class_dat
数据的二元分类问题。这六个模型利用裸公式或基本配方,利用 recipes::step_YeoJohnson()
作为预处理器,以及决策树、逻辑回归或 MARS 模型规范。有关源代码,请参阅?two_class_set
。
chi_features_*
对象基于使用 modeldata 包中的 Chicago
数据的回归问题。这三个模型均采用线性回归模型规范,具有不同复杂性的三种不同配方。这些对象旨在近似 Kuhn 和 Johnson (2019) 第 1.3 节中构建的模型序列。有关源代码,请参阅?chi_features_set
。
例子
library(dplyr)
#>
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#>
#> filter, lag
#> The following objects are masked from ‘package:base’:
#>
#> intersect, setdiff, setequal, union
library(purrr)
library(tidyr)
two_class_res
#> # A workflow set/tibble: 6 × 4
#> wflow_id info option result
#> <chr> <list> <list> <list>
#> 1 none_cart <tibble [1 × 4]> <opts[3]> <tune[+]>
#> 2 none_glm <tibble [1 × 4]> <opts[3]> <rsmp[+]>
#> 3 none_mars <tibble [1 × 4]> <opts[3]> <tune[+]>
#> 4 yj_trans_cart <tibble [1 × 4]> <opts[3]> <tune[+]>
#> 5 yj_trans_glm <tibble [1 × 4]> <opts[3]> <rsmp[+]>
#> 6 yj_trans_mars <tibble [1 × 4]> <opts[3]> <tune[+]>
# ------------------------------------------------------------------------------
# \donttest{
collect_metrics(two_class_res)
#> # A tibble: 52 × 9
#> wflow_id .config preproc model .metric .estimator mean n std_err
#> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <int> <dbl>
#> 1 none_cart Preproc… formula deci… accura… binary 0.777 5 0.00517
#> 2 none_cart Preproc… formula deci… roc_auc binary 0.839 5 0.0160
#> 3 none_cart Preproc… formula deci… accura… binary 0.784 5 0.00812
#> 4 none_cart Preproc… formula deci… roc_auc binary 0.841 5 0.0171
#> 5 none_cart Preproc… formula deci… accura… binary 0.791 5 0.0111
#> 6 none_cart Preproc… formula deci… roc_auc binary 0.853 5 0.00813
#> 7 none_cart Preproc… formula deci… accura… binary 0.814 5 0.0104
#> 8 none_cart Preproc… formula deci… roc_auc binary 0.829 5 0.0145
#> 9 none_cart Preproc… formula deci… accura… binary 0.788 5 0.0133
#> 10 none_cart Preproc… formula deci… roc_auc binary 0.852 5 0.0101
#> # ℹ 42 more rows
# Alternatively, if the tuning parameter values are needed:
two_class_res %>%
dplyr::filter(grepl("cart", wflow_id)) %>%
mutate(metrics = map(result, collect_metrics)) %>%
dplyr::select(wflow_id, metrics) %>%
tidyr::unnest(cols = metrics)
#> # A tibble: 40 × 9
#> wflow_id cost_complexity min_n .metric .estimator mean n std_err
#> <chr> <dbl> <int> <chr> <chr> <dbl> <int> <dbl>
#> 1 none_cart 2.28e- 7 13 accuracy binary 0.777 5 0.00517
#> 2 none_cart 2.28e- 7 13 roc_auc binary 0.839 5 0.0160
#> 3 none_cart 1.32e- 5 16 accuracy binary 0.784 5 0.00812
#> 4 none_cart 1.32e- 5 16 roc_auc binary 0.841 5 0.0171
#> 5 none_cart 8.19e-10 26 accuracy binary 0.791 5 0.0111
#> 6 none_cart 8.19e-10 26 roc_auc binary 0.853 5 0.00813
#> 7 none_cart 9.52e- 3 9 accuracy binary 0.814 5 0.0104
#> 8 none_cart 9.52e- 3 9 roc_auc binary 0.829 5 0.0145
#> 9 none_cart 4.76e- 7 20 accuracy binary 0.788 5 0.0133
#> 10 none_cart 4.76e- 7 20 roc_auc binary 0.852 5 0.0101
#> # ℹ 30 more rows
#> # ℹ 1 more variable: .config <chr>
# }
collect_metrics(two_class_res, summarize = FALSE)
#> # A tibble: 260 × 8
#> wflow_id .config preproc model id .metric .estimator .estimate
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl>
#> 1 none_cart Preprocesso… formula deci… Fold1 accura… binary 0.786
#> 2 none_cart Preprocesso… formula deci… Fold1 roc_auc binary 0.875
#> 3 none_cart Preprocesso… formula deci… Fold2 accura… binary 0.766
#> 4 none_cart Preprocesso… formula deci… Fold2 roc_auc binary 0.851
#> 5 none_cart Preprocesso… formula deci… Fold3 accura… binary 0.778
#> 6 none_cart Preprocesso… formula deci… Fold3 roc_auc binary 0.848
#> 7 none_cart Preprocesso… formula deci… Fold4 accura… binary 0.766
#> 8 none_cart Preprocesso… formula deci… Fold4 roc_auc binary 0.779
#> 9 none_cart Preprocesso… formula deci… Fold5 accura… binary 0.791
#> 10 none_cart Preprocesso… formula deci… Fold5 roc_auc binary 0.841
#> # ℹ 250 more rows
相关用法
- R workflowsets comment_add 为工作流程添加注释和评论
- R workflowsets extract_workflow_set_result 提取工作流集的元素
- R workflowsets option_add 添加和编辑工作流程集中保存的选项
- R workflowsets fit_best.workflow_set 将模型拟合到数值最优配置
- R workflowsets leave_var_out_formulas 创建没有每个预测变量的公式
- R workflowsets workflow_map 处理一系列工作流程
- R workflowsets as_workflow_set 将现有对象转换为工作流集
- R workflowsets option_list 制作一个分类的选项列表
- R workflowsets rank_results 按指标对结果进行排名
- R workflowsets workflow_set 从预处理和模型对象生成一组工作流对象
- R workflowsets pull_workflow_set_result 从工作流集中提取元素
- R workflowsets autoplot.workflow_set 绘制工作流程集的结果
- R workflowsets update_workflow_model 更新工作流集中的工作流组件
- R workflows add_model 将模型添加到工作流程
- R workflows workflow 创建工作流程
- R workflows extract-workflow 提取工作流程的元素
- R workflows add_variables 将变量添加到工作流程
- R workflows add_formula 将公式术语添加到工作流程
- R workflows predict-workflow 从工作流程进行预测
- R workflows augment.workflow 通过预测增强数据
- R workflows add_recipe 将配方添加到工作流程
- R workflows glance.workflow 工作流程模型一览
- R workflows is_trained_workflow 确定工作流程是否经过训练
- R workflows fit-workflow 适合工作流对象
- R workflows add_case_weights 将案例权重添加到工作流程
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Obtain and format results produced by tuning functions for workflow sets。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。