返回所有模型或子模型的性能指標的一小部分。
用法
# 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。