當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。