当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R workflowsets collect_metrics.workflow_set 获取并格式化通过调整工作流集函数生成的结果


返回所有模型或子模型的性能指标的一小部分。

用法

# 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_setchi_features_set ,以及适合 two_class_reschi_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/collect.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Obtain and format results produced by tuning functions for workflow sets。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。