【R vs Python】机器学习

R语言(tidymodels 和 mlr3)和python(sklearn)机器学习对比
作者

不止BI

发布于

2024年2月23日

数据集

企鹅数据集(penguins)是一个包含南极洲三种企鹅物种的生物测量数据的公开数据集。该数据集由美国南极洲 Palmer 站的科学家在 1971 年至 2022 年间收集。

  • species: 企鹅物种,取值为 Adelie、Chinstrap 或 Gentoo

  • island: 企鹅栖息的岛屿,取值为 Biscoe、Dream 或 Torgersen

  • sex: 企鹅性别,取值为 male 或 female

  • bill_length_mm: 企鹅喙长(毫米)

  • bill_depth_mm: 企鹅喙深(毫米)

  • flipper_length_mm: 企鹅鳍长(毫米)

  • body_mass_g: 企鹅体重(克)

  • year: 数据收集年份

  • age: 企鹅年龄(年)

代码
library(dplyr)

tb_penguins <-
  read.csv(
    "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv"
  ) %>%
  as_tibble()
head(tb_penguins)
# A tibble: 6 × 7
  species island    bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
  <chr>   <chr>              <dbl>         <dbl>             <int>       <int>
1 Adelie  Torgersen           39.1          18.7               181        3750
2 Adelie  Torgersen           39.5          17.4               186        3800
3 Adelie  Torgersen           40.3          18                 195        3250
4 Adelie  Torgersen           NA            NA                  NA          NA
5 Adelie  Torgersen           36.7          19.3               193        3450
6 Adelie  Torgersen           39.3          20.6               190        3650
# ℹ 1 more variable: sex <chr>
代码
library(data.table)

dt_penguins <- as.data.table(
  read.csv(
    "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv"
  )
)
head(dt_penguins)
   species    island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
    <char>    <char>          <num>         <num>             <int>       <int>
1:  Adelie Torgersen           39.1          18.7               181        3750
2:  Adelie Torgersen           39.5          17.4               186        3800
3:  Adelie Torgersen           40.3          18.0               195        3250
4:  Adelie Torgersen             NA            NA                NA          NA
5:  Adelie Torgersen           36.7          19.3               193        3450
6:  Adelie Torgersen           39.3          20.6               190        3650
      sex
   <char>
1:   MALE
2: FEMALE
3: FEMALE
4:       
5: FEMALE
6:   MALE
代码
import pandas as pd

df_penguins = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv")
df_penguins.head(5)
  species     island  bill_length_mm  ...  flipper_length_mm  body_mass_g     sex
0  Adelie  Torgersen            39.1  ...              181.0       3750.0    MALE
1  Adelie  Torgersen            39.5  ...              186.0       3800.0  FEMALE
2  Adelie  Torgersen            40.3  ...              195.0       3250.0  FEMALE
3  Adelie  Torgersen             NaN  ...                NaN          NaN     NaN
4  Adelie  Torgersen            36.7  ...              193.0       3450.0  FEMALE

[5 rows x 7 columns]

数据可视化

代码
library(GGally)
library(tidyverse)

ggpairs(tb_penguins %>% dplyr::select(ends_with("mm"), species), mapping = ggplot2::aes(color = species))

代码
library(GGally)
ggpairs(tb_penguins, mapping = ggplot2::aes(color = species))

代码
import seaborn as sns
plot1 = sns.pairplot(data = df_penguins,hue = 'species')

基本流程

观察数据

代码
glimpse(tb_penguins)
Rows: 344
Columns: 7
$ species           <chr> "Adelie", "Adelie", "Adelie", "Adelie", "Adelie", "A…
$ island            <chr> "Torgersen", "Torgersen", "Torgersen", "Torgersen", …
$ bill_length_mm    <dbl> 39.1, 39.5, 40.3, NA, 36.7, 39.3, 38.9, 39.2, 34.1, …
$ bill_depth_mm     <dbl> 18.7, 17.4, 18.0, NA, 19.3, 20.6, 17.8, 19.6, 18.1, …
$ flipper_length_mm <int> 181, 186, 195, NA, 193, 190, 181, 195, 193, 190, 186…
$ body_mass_g       <int> 3750, 3800, 3250, NA, 3450, 3650, 3625, 4675, 3475, …
$ sex               <chr> "MALE", "FEMALE", "FEMALE", "", "FEMALE", "MALE", "F…
代码
skimr::skim(data = tb_penguins)
Data summary
Name tb_penguins
Number of rows 344
Number of columns 7
_______________________
Column type frequency:
character 3
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
species 0 1 6 9 0 3 0
island 0 1 5 9 0 3 0
sex 0 1 0 6 11 3 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
bill_length_mm 2 0.99 43.92 5.46 32.1 39.23 44.45 48.5 59.6 ▃▇▇▆▁
bill_depth_mm 2 0.99 17.15 1.97 13.1 15.60 17.30 18.7 21.5 ▅▅▇▇▂
flipper_length_mm 2 0.99 200.92 14.06 172.0 190.00 197.00 213.0 231.0 ▂▇▃▅▂
body_mass_g 2 0.99 4201.75 801.95 2700.0 3550.00 4050.00 4750.0 6300.0 ▃▇▆▃▂

数据拆分

代码
library(tidymodels)
set.seed(123)

tb_penguins <- tb_penguins %>%
  mutate(RowId = row_number(), species = factor(species))

# 分层抽样
data_split <- initial_split(tb_penguins, prop = 3 / 4, strata = species)

train_data <- training(data_split)
test_data <- testing(data_split)


# 交叉验证

folds <- vfold_cv(train_data, v = 10, repeats = 10, strata = species)
folds
#  10-fold cross-validation repeated 10 times using stratification 
# A tibble: 100 × 3
   splits           id       id2   
   <list>           <chr>    <chr> 
 1 <split [230/28]> Repeat01 Fold01
 2 <split [231/27]> Repeat01 Fold02
 3 <split [231/27]> Repeat01 Fold03
 4 <split [232/26]> Repeat01 Fold04
 5 <split [233/25]> Repeat01 Fold05
 6 <split [233/25]> Repeat01 Fold06
 7 <split [233/25]> Repeat01 Fold07
 8 <split [233/25]> Repeat01 Fold08
 9 <split [233/25]> Repeat01 Fold09
10 <split [233/25]> Repeat01 Fold10
# ℹ 90 more rows

创建配方

代码
penguins_rec <-
  recipe(species ~ ., data = train_data) %>%
  update_role(RowId, new_role = "ID") %>%
  step_dummy(all_nominal_predictors()) %>%
  step_naomit(all_predictors()) %>%
  step_zv(all_predictors())

创建模型

代码
# 逻辑回归
# lgr_mod <- logistic_reg()

# 随机森林模型,指定参数、计算引擎(即采用的算法包)、计算模式(分类或回归)
rf_mod <-
  rand_forest(trees = 1000) %>%
  set_engine("ranger") %>%
  set_mode("classification")


# 超参数调参
tune_spec <-
  decision_tree(
    cost_complexity = tune(),
    tree_depth = tune()
  ) %>%
  set_engine("rpart") %>%
  set_mode("classification")
tree_grid <- grid_regular(cost_complexity(),
  tree_depth(),
  levels = 5
)

创建工作流

代码
# 包含数据预处理及模型的工作流
penguins_wflow <- workflow() %>%
  add_recipe(penguins_rec) %>%
  add_model(rf_mod)
penguins_wflow
══ Workflow ════════════════════════════════════════════════════════════════════
Preprocessor: Recipe
Model: rand_forest()

── Preprocessor ────────────────────────────────────────────────────────────────
3 Recipe Steps

• step_dummy()
• step_naomit()
• step_zv()

── Model ───────────────────────────────────────────────────────────────────────
Random Forest Model Specification (classification)

Main Arguments:
  trees = 1000

Computational engine: ranger 
代码
# 包含数据预处理及模型超参数调参的工作流
penguins_wflow_tune <- workflow() %>%
  add_recipe(penguins_rec) %>%
  add_model(tune_spec)
penguins_wflow_tune
══ Workflow ════════════════════════════════════════════════════════════════════
Preprocessor: Recipe
Model: decision_tree()

── Preprocessor ────────────────────────────────────────────────────────────────
3 Recipe Steps

• step_dummy()
• step_naomit()
• step_zv()

── Model ───────────────────────────────────────────────────────────────────────
Decision Tree Model Specification (classification)

Main Arguments:
  cost_complexity = tune()
  tree_depth = tune()

Computational engine: rpart 

拟合数据

代码
# 直接拟合训练集
penguins_fit <- penguins_wflow %>% fit(train_data)
penguins_fit
══ Workflow [trained] ══════════════════════════════════════════════════════════
Preprocessor: Recipe
Model: rand_forest()

── Preprocessor ────────────────────────────────────────────────────────────────
3 Recipe Steps

• step_dummy()
• step_naomit()
• step_zv()

── Model ───────────────────────────────────────────────────────────────────────
Ranger result

Call:
 ranger::ranger(x = maybe_data_frame(x), y = y, num.trees = ~1000,      num.threads = 1, verbose = FALSE, seed = sample.int(10^5,          1), probability = TRUE) 

Type:                             Probability estimation 
Number of trees:                  1000 
Sample size:                      256 
Number of independent variables:  8 
Mtry:                             2 
Target node size:                 10 
Variable importance mode:         none 
Splitrule:                        gini 
OOB prediction error (Brier s.):  0.01622186 
代码
# 交叉验证拟和
penguins_fit_fold <- penguins_wflow %>% fit_resamples(resamples = folds)
collect_metrics(penguins_fit_fold)
# A tibble: 3 × 6
  .metric     .estimator   mean     n  std_err .config             
  <chr>       <chr>       <dbl> <int>    <dbl> <chr>               
1 accuracy    multiclass 0.986    100 0.00209  Preprocessor1_Model1
2 brier_class multiclass 0.0176   100 0.00109  Preprocessor1_Model1
3 roc_auc     hand_till  1.00     100 0.000166 Preprocessor1_Model1
代码
# 调参拟和
penguins_fit_fold_tune <- penguins_wflow_tune %>%
  tune_grid(resamples = folds, grid = tree_grid)
collect_metrics(penguins_fit_fold_tune)
# A tibble: 75 × 8
   cost_complexity tree_depth .metric     .estimator  mean     n std_err .config
             <dbl>      <int> <chr>       <chr>      <dbl> <int>   <dbl> <chr>  
 1    0.0000000001          1 accuracy    multiclass 0.783   100 0.00363 Prepro…
 2    0.0000000001          1 brier_class multiclass 0.158   100 0.00270 Prepro…
 3    0.0000000001          1 roc_auc     hand_till  0.813   100 0.00241 Prepro…
 4    0.0000000178          1 accuracy    multiclass 0.783   100 0.00363 Prepro…
 5    0.0000000178          1 brier_class multiclass 0.158   100 0.00270 Prepro…
 6    0.0000000178          1 roc_auc     hand_till  0.813   100 0.00241 Prepro…
 7    0.00000316            1 accuracy    multiclass 0.783   100 0.00363 Prepro…
 8    0.00000316            1 brier_class multiclass 0.158   100 0.00270 Prepro…
 9    0.00000316            1 roc_auc     hand_till  0.813   100 0.00241 Prepro…
10    0.000562              1 accuracy    multiclass 0.783   100 0.00363 Prepro…
# ℹ 65 more rows

抽取结果

代码
# 抽取模型(随机森林不支持)
# penguins_fit %>%
#   extract_fit_parsnip() %>%
#   tidy()

预测新数据

代码
# 只显示目标变量
penguins_pred <- predict(penguins_fit, test_data)
# 目标变量 与 预测数据结合
penguins_aug <- augment(penguins_fit, test_data)
penguins_aug
# A tibble: 86 × 12
   .pred_class .pred_Adelie .pred_Chinstrap .pred_Gentoo species island   
   <fct>              <dbl>           <dbl>        <dbl> <fct>   <chr>    
 1 Adelie             0.999        0.000443     0.000150 Adelie  Torgersen
 2 Adelie             0.986        0.0111       0.00259  Adelie  Torgersen
 3 Adelie             0.990        0.00662      0.00295  Adelie  Torgersen
 4 Adelie             0.992        0.00651      0.00135  Adelie  Torgersen
 5 Adelie             0.989        0.00158      0.00961  Adelie  Torgersen
 6 Adelie             0.949        0.0353       0.0159   Adelie  Torgersen
 7 Adelie             0.996        0.00297      0.00119  Adelie  Torgersen
 8 Adelie             0.983        0.0106       0.00642  Adelie  Biscoe   
 9 Adelie             0.922        0.0760       0.00164  Adelie  Dream    
10 Adelie             0.899        0.0999       0.00161  Adelie  Dream    
# ℹ 76 more rows
# ℹ 6 more variables: bill_length_mm <dbl>, bill_depth_mm <dbl>,
#   flipper_length_mm <int>, body_mass_g <int>, sex <chr>, RowId <int>

模型评价

代码
penguins_aug %>%
  roc_curve(truth = species, .pred_Adelie:.pred_Gentoo) %>%
  autoplot()

代码
penguins_aug %>% roc_auc(truth = species, .pred_Adelie:.pred_Gentoo)
# A tibble: 1 × 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 roc_auc hand_till      0.999
代码
penguins_aug %>% accuracy(truth = species, estimate = .pred_class)
# A tibble: 1 × 3
  .metric  .estimator .estimate
  <chr>    <chr>          <dbl>
1 accuracy multiclass     0.988

观察数据

代码
library(mlr3verse)
summary(tb_penguins)
      species       island          bill_length_mm  bill_depth_mm  
 Adelie   :152   Length:344         Min.   :32.10   Min.   :13.10  
 Chinstrap: 68   Class :character   1st Qu.:39.23   1st Qu.:15.60  
 Gentoo   :124   Mode  :character   Median :44.45   Median :17.30  
                                    Mean   :43.92   Mean   :17.15  
                                    3rd Qu.:48.50   3rd Qu.:18.70  
                                    Max.   :59.60   Max.   :21.50  
                                    NA's   :2       NA's   :2      
 flipper_length_mm  body_mass_g       sex                RowId       
 Min.   :172.0     Min.   :2700   Length:344         Min.   :  1.00  
 1st Qu.:190.0     1st Qu.:3550   Class :character   1st Qu.: 86.75  
 Median :197.0     Median :4050   Mode  :character   Median :172.50  
 Mean   :200.9     Mean   :4202                      Mean   :172.50  
 3rd Qu.:213.0     3rd Qu.:4750                      3rd Qu.:258.25  
 Max.   :231.0     Max.   :6300                      Max.   :344.00  
 NA's   :2         NA's   :2                                         

新建学习任务

代码
tsk_penguins <- as_task_classif(tb_penguins, target = "species", id = "penguins")
tsk_penguins
<TaskClassif:penguins> (344 x 8)
* Target: species
* Properties: multiclass
* Features (7):
  - int (3): RowId, body_mass_g, flipper_length_mm
  - dbl (2): bill_depth_mm, bill_length_mm
  - chr (2): island, sex

mlr3中的tsk是一个R6类,可以通过$调取类方法和属性.需要注意的是,tsk类中的方法会直接作用于对象,如果需要保留原始对象,需要使用$clonetsk复制后进行操作

代码
class(tsk_penguins)
[1] "TaskClassif"    "TaskSupervised" "Task"           "R6"            
代码
# 查看列信息
tsk_penguins$col_info
Key: <id>
                  id      type                  levels  label fix_factor_levels
              <char>    <char>                  <list> <char>            <lgcl>
1:          ..row_id   integer                  [NULL]   <NA>             FALSE
2:             RowId   integer                  [NULL]   <NA>             FALSE
3:     bill_depth_mm   numeric                  [NULL]   <NA>             FALSE
4:    bill_length_mm   numeric                  [NULL]   <NA>             FALSE
5:       body_mass_g   integer                  [NULL]   <NA>             FALSE
6: flipper_length_mm   integer                  [NULL]   <NA>             FALSE
7:            island character                  [NULL]   <NA>             FALSE
8:               sex character                  [NULL]   <NA>             FALSE
9:           species    factor Adelie,Chinstrap,Gentoo   <NA>             FALSE
代码
# 查看分类
tsk_penguins$class_names
[1] "Adelie"    "Chinstrap" "Gentoo"   
代码
# 特征名称
tsk_penguins$feature_names
[1] "RowId"             "bill_depth_mm"     "bill_length_mm"   
[4] "body_mass_g"       "flipper_length_mm" "island"           
[7] "sex"              
代码
# 筛选数据(在原始对象)
# tsk_penguins$filter(1:4)
# 筛选数据(在复制对象,原始对象保持不变)
tsk_penguins_clone <- tsk_penguins$clone()
tsk_penguins_clone$filter(1:3)
# 原始对象数据不变
tsk_penguins$data()
     species RowId bill_depth_mm bill_length_mm body_mass_g flipper_length_mm
      <fctr> <int>         <num>          <num>       <int>             <int>
  1:  Adelie     1          18.7           39.1        3750               181
  2:  Adelie     2          17.4           39.5        3800               186
  3:  Adelie     3          18.0           40.3        3250               195
  4:  Adelie     4            NA             NA          NA                NA
  5:  Adelie     5          19.3           36.7        3450               193
 ---                                                                         
340:  Gentoo   340            NA             NA          NA                NA
341:  Gentoo   341          14.3           46.8        4850               215
342:  Gentoo   342          15.7           50.4        5750               222
343:  Gentoo   343          14.8           45.2        5200               212
344:  Gentoo   344          16.1           49.9        5400               213
        island    sex
        <char> <char>
  1: Torgersen   MALE
  2: Torgersen FEMALE
  3: Torgersen FEMALE
  4: Torgersen       
  5: Torgersen FEMALE
 ---                 
340:    Biscoe       
341:    Biscoe FEMALE
342:    Biscoe   MALE
343:    Biscoe FEMALE
344:    Biscoe   MALE
代码
# 复制对象数据已被筛选
tsk_penguins_clone$data()
   species RowId bill_depth_mm bill_length_mm body_mass_g flipper_length_mm
    <fctr> <int>         <num>          <num>       <int>             <int>
1:  Adelie     1          18.7           39.1        3750               181
2:  Adelie     2          17.4           39.5        3800               186
3:  Adelie     3          18.0           40.3        3250               195
      island    sex
      <char> <char>
1: Torgersen   MALE
2: Torgersen FEMALE
3: Torgersen FEMALE

数据拆分

代码
# 拆分训练集与测试集
splits <- partition(tsk_penguins, ratio = 0.75)
splits
$train
  [1]   2   3   4   5   6   8   9  11  14  15  16  17  19  20  21  22  23  24
 [19]  25  26  27  30  31  33  34  35  36  37  38  40  41  42  44  45  46  47
 [37]  49  50  51  52  53  55  56  57  58  60  62  63  64  67  69  70  71  72
 [55]  73  74  76  77  78  80  81  82  84  85  86  87  88  89  90  92  93  94
 [73]  96  97 100 101 104 105 106 107 108 110 112 115 116 117 118 119 121 122
 [91] 123 126 127 128 129 130 131 132 133 134 135 139 140 141 142 143 144 145
[109] 146 147 148 149 150 152 154 155 157 158 160 162 163 164 165 168 169 170
[127] 171 172 173 174 176 177 178 180 181 182 183 184 185 186 188 189 191 192
[145] 193 194 195 196 197 200 201 202 203 204 205 206 207 209 212 213 215 216
[163] 218 220 222 226 230 231 232 235 236 241 242 243 245 246 247 248 249 250
[181] 251 252 253 255 256 257 258 259 260 261 262 263 264 265 266 268 269 270
[199] 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 287 288 289
[217] 290 291 292 293 294 295 296 297 299 300 301 302 303 304 305 306 307 308
[235] 309 312 313 314 315 316 318 321 322 323 325 326 327 328 332 333 334 335
[253] 337 338 339 340 342 344

$test
 [1]   1   7  10  12  13  18  28  29  32  39  43  48  54  59  61  65  66  68  75
[20]  79  83  91  95  98  99 102 103 109 111 113 114 120 124 125 136 137 138 151
[39] 153 156 159 161 166 167 175 179 187 190 198 199 208 210 211 214 217 219 221
[58] 223 224 225 227 228 229 233 234 237 238 239 240 244 254 267 286 298 310 311
[77] 317 319 320 324 329 330 331 336 341 343

$validation
integer(0)
代码
# 交叉验证
resampling <- rsmp("repeated_cv", folds = 10L, repeats = 10)

创建模型

代码
# 查看支持的学习器
lrn()
<DictionaryLearner> with 51 stored values
Keys: classif.cv_glmnet, classif.debug, classif.featureless,
  classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
  classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
  classif.ranger, classif.rpart, classif.svm, classif.xgboost,
  clust.agnes, clust.ap, clust.bico, clust.birch, clust.cmeans,
  clust.cobweb, clust.dbscan, clust.dbscan_fpc, clust.diana, clust.em,
  clust.fanny, clust.featureless, clust.ff, clust.hclust,
  clust.hdbscan, clust.kkmeans, clust.kmeans, clust.MBatchKMeans,
  clust.mclust, clust.meanshift, clust.optics, clust.pam,
  clust.SimpleKMeans, clust.xmeans, regr.cv_glmnet, regr.debug,
  regr.featureless, regr.glmnet, regr.kknn, regr.km, regr.lm,
  regr.nnet, regr.ranger, regr.rpart, regr.svm, regr.xgboost
代码
# 定义学习器

lrn_ranger <- lrn("classif.ranger")
# 查看学习器参数
lrn_ranger$param_set
<ParamSet(28)>
Key: <id>
                              id    class lower upper nlevels        default
                          <char>   <char> <num> <num>   <num>         <list>
 1:       always.split.variables ParamUty    NA    NA     Inf <NoDefault[0]>
 2:                class.weights ParamUty    NA    NA     Inf         [NULL]
 3:                      holdout ParamLgl    NA    NA       2          FALSE
 4:                   importance ParamFct    NA    NA       4 <NoDefault[0]>
 5:                   keep.inbag ParamLgl    NA    NA       2          FALSE
 6:                    max.depth ParamInt     1   Inf     Inf         [NULL]
 7:                   min.bucket ParamUty    NA    NA     Inf              1
 8:                min.node.size ParamUty    NA    NA     Inf         [NULL]
 9:                         mtry ParamInt     1   Inf     Inf <NoDefault[0]>
10:                   mtry.ratio ParamDbl     0     1     Inf <NoDefault[0]>
11:                    na.action ParamFct    NA    NA       3       na.learn
12:                   node.stats ParamLgl    NA    NA       2          FALSE
13:            num.random.splits ParamInt     1   Inf     Inf              1
14:                  num.threads ParamInt     1   Inf     Inf              1
15:                    num.trees ParamInt     1   Inf     Inf            500
16:                    oob.error ParamLgl    NA    NA       2           TRUE
17:        regularization.factor ParamUty    NA    NA     Inf              1
18:      regularization.usedepth ParamLgl    NA    NA       2          FALSE
19:                      replace ParamLgl    NA    NA       2           TRUE
20:    respect.unordered.factors ParamFct    NA    NA       3 <NoDefault[0]>
21:              sample.fraction ParamDbl     0     1     Inf <NoDefault[0]>
22:                  save.memory ParamLgl    NA    NA       2          FALSE
23: scale.permutation.importance ParamLgl    NA    NA       2          FALSE
24:                         seed ParamInt  -Inf   Inf     Inf         [NULL]
25:         split.select.weights ParamUty    NA    NA     Inf         [NULL]
26:                    splitrule ParamFct    NA    NA       3           gini
27:                      verbose ParamLgl    NA    NA       2           TRUE
28:                 write.forest ParamLgl    NA    NA       2           TRUE
                              id    class lower upper nlevels        default
       parents  value
        <list> <list>
 1:     [NULL] [NULL]
 2:     [NULL] [NULL]
 3:     [NULL] [NULL]
 4:     [NULL] [NULL]
 5:     [NULL] [NULL]
 6:     [NULL] [NULL]
 7:     [NULL] [NULL]
 8:     [NULL] [NULL]
 9:     [NULL] [NULL]
10:     [NULL] [NULL]
11:     [NULL] [NULL]
12:     [NULL] [NULL]
13:  splitrule [NULL]
14:     [NULL]      1
15:     [NULL] [NULL]
16:     [NULL] [NULL]
17:     [NULL] [NULL]
18:     [NULL] [NULL]
19:     [NULL] [NULL]
20:     [NULL] [NULL]
21:     [NULL] [NULL]
22:     [NULL] [NULL]
23: importance [NULL]
24:     [NULL] [NULL]
25:     [NULL] [NULL]
26:     [NULL] [NULL]
27:     [NULL] [NULL]
28:     [NULL] [NULL]
       parents  value
代码
# 设置超参数调参
# lrn_ranger$param_set$set_values(
#   max.depth = to_tune(1, 10),
#   min.node.size = to_tune(1, 50),
#   min.bucket = to_tune(1, 10)
# )

# mlr3tuningspace中收集了常用的搜索空间,对于决策树、随机森林、xgboost这种著名模型,只需要用lts()方法,不需要手动设置值
# lrn_ranger = lts(lrn_ranger)

图学习器

代码
# 查看支持的图数据处理
po()
<DictionaryPipeOp> with 75 stored values
Keys: adas, blsmote, boxcox, branch, chunk, classbalancing, classifavg,
  classweights, colapply, collapsefactors, colroles, copy,
  datefeatures, decode, encode, encodeimpact, encodelmer,
  encodeplquantiles, encodepltree, featureunion, filter, fixfactors,
  histbin, ica, imputeconstant, imputehist, imputelearner, imputemean,
  imputemedian, imputemode, imputeoor, imputesample, kernelpca,
  learner, learner_cv, learner_pi_cvplus, learner_quantiles, missind,
  modelmatrix, multiplicityexply, multiplicityimply, mutate, nearmiss,
  nmf, nop, ovrsplit, ovrunite, pca, proxy, quantilebin,
  randomprojection, randomresponse, regravg, removeconstants,
  renamecolumns, replicate, rowapply, scale, scalemaxabs, scalerange,
  select, smote, smotenc, spatialsign, subsample, targetinvert,
  targetmutate, targettrafoscalerange, textvectorizer, threshold,
  tomek, tunethreshold, unbranch, vtreat, yeojohnson
代码
preproc <- po("imputemedian") %>>%
  # po("collapsefactors", no_collapse_above_prevalence = 0.03) %>>%
  po("fixfactors") %>>%
  po("encode", method = "one-hot") %>>%
  po("scale")
graph <- preproc %>>% lrn_ranger # 接上学习器
graph$plot(html = TRUE, horizontal = TRUE) # 可视化

代码
glrn <- as_learner(graph) # 转化为图学习器

拟合数据

代码
## 拟合训练数据
glrn$train(task = tsk_penguins, row_ids = splits$train)

glrn$model
$imputemedian
$imputemedian$affected_cols
[1] "RowId"             "bill_depth_mm"     "bill_length_mm"   
[4] "body_mass_g"       "flipper_length_mm"

$imputemedian$intasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   integer
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   integer
5: flipper_length_mm   integer
6:            island character
7:               sex character

$imputemedian$model
$imputemedian$model$RowId
[1] 174

$imputemedian$model$bill_depth_mm
[1] 17.3

$imputemedian$model$bill_length_mm
[1] 44.45

$imputemedian$model$body_mass_g
[1] 4050

$imputemedian$model$flipper_length_mm
[1] 197


$imputemedian$outtasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   integer
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   integer
5: flipper_length_mm   integer
6:            island character
7:               sex character

$imputemedian$imputed_train
[1] "bill_depth_mm"     "bill_length_mm"    "body_mass_g"      
[4] "flipper_length_mm"


$fixfactors
$fixfactors$levels
named list()

$fixfactors$affected_cols
[1] "RowId"             "island"            "sex"              
[4] "bill_depth_mm"     "bill_length_mm"    "body_mass_g"      
[7] "flipper_length_mm"

$fixfactors$intasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   integer
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   integer
5: flipper_length_mm   integer
6:            island character
7:               sex character

$fixfactors$outtasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   integer
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   integer
5: flipper_length_mm   integer
6:            island character
7:               sex character

$fixfactors$outtaskshell
Empty data.table (0 rows and 8 cols): species,RowId,island,sex,bill_depth_mm,bill_length_mm...


$encode
$encode$dt_columns
character(0)

$encode$affected_cols
[1] "RowId"             "island"            "sex"              
[4] "bill_depth_mm"     "bill_length_mm"    "body_mass_g"      
[7] "flipper_length_mm"

$encode$intasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   integer
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   integer
5: flipper_length_mm   integer
6:            island character
7:               sex character

$encode$outtasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   integer
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   integer
5: flipper_length_mm   integer
6:            island character
7:               sex character

$encode$outtaskshell
Empty data.table (0 rows and 8 cols): species,RowId,island,sex,bill_depth_mm,bill_length_mm...


$scale
$scale$center
            RowId     bill_depth_mm    bill_length_mm       body_mass_g 
        173.86434          17.18915          43.91473        4215.89147 
flipper_length_mm 
        201.27519 

$scale$scale
            RowId     bill_depth_mm    bill_length_mm       body_mass_g 
       100.048903          1.998861          5.362109        768.028693 
flipper_length_mm 
        13.724848 

$scale$dt_columns
[1] "RowId"             "bill_depth_mm"     "bill_length_mm"   
[4] "body_mass_g"       "flipper_length_mm"

$scale$affected_cols
[1] "RowId"             "island"            "sex"              
[4] "bill_depth_mm"     "bill_length_mm"    "body_mass_g"      
[7] "flipper_length_mm"

$scale$intasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   integer
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   integer
5: flipper_length_mm   integer
6:            island character
7:               sex character

$scale$outtasklayout
Key: <id>
                  id      type
              <char>    <char>
1:             RowId   numeric
2:     bill_depth_mm   numeric
3:    bill_length_mm   numeric
4:       body_mass_g   numeric
5: flipper_length_mm   numeric
6:            island character
7:               sex character

$scale$outtaskshell
Empty data.table (0 rows and 8 cols): species,island,sex,RowId,bill_depth_mm,bill_length_mm...


$classif.ranger
$model
Ranger result

Call:
 ranger::ranger(dependent.variable.name = task$target_names, data = task$data(),      probability = self$predict_type == "prob", case.weights = task$weights$weight,      num.threads = 1L) 

Type:                             Classification 
Number of trees:                  500 
Sample size:                      258 
Number of independent variables:  7 
Mtry:                             2 
Target node size:                 1 
Variable importance mode:         none 
Splitrule:                        gini 
OOB prediction error:             0.00 % 

$param_vals
$param_vals$num.threads
[1] 1


$log
Empty data.table (0 rows and 3 cols): stage,class,msg

$train_time
[1] 0.03

$task_hash
[1] "62c6849cbed0a047"

$feature_names
[1] "island"            "sex"               "RowId"            
[4] "bill_depth_mm"     "bill_length_mm"    "body_mass_g"      
[7] "flipper_length_mm"

$validate
NULL

$mlr3_version
[1] '0.23.0'

$data_prototype
Empty data.table (0 rows and 8 cols): species,island,sex,RowId,bill_depth_mm,bill_length_mm...

$task_prototype
Empty data.table (0 rows and 8 cols): species,island,sex,RowId,bill_depth_mm,bill_length_mm...

$train_task
<TaskClassif:penguins> (258 x 8)
* Target: species
* Properties: multiclass
* Features (7):
  - dbl (5): RowId, bill_depth_mm, bill_length_mm, body_mass_g,
    flipper_length_mm
  - chr (2): island, sex

attr(,"class")
[1] "learner_state" "list"         

attr(,"class")
[1] "graph_learner_model" "list"               
代码
## 交叉验证拟合

# rr = resample(tsk_penguins, glrn, resampling)


## 超参数调参

at <- auto_tuner(
  tuner = tnr("random_search"),
  learner = preproc %>>% lrn("classif.ranger", max.depth = to_tune(1, 10)) %>% as_learner(),
  resampling = resampling,
  measure = msr("classif.ce"),
  term_evals = 4
)

at$train(tsk_penguins)
INFO  [16:11:21.424] [bbotk] Starting to optimize 1 parameter(s) with '<OptimizerBatchRandomSearch>' and '<TerminatorEvals> [n_evals=4, k=0]'
INFO  [16:11:21.462] [bbotk] Evaluating 1 configuration(s)
INFO  [16:11:21.484] [mlr3] Running benchmark with 100 resampling iterations
INFO  [16:11:21.532] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 1/100)
INFO  [16:11:21.787] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 2/100)
INFO  [16:11:22.015] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 3/100)
INFO  [16:11:22.229] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 4/100)
INFO  [16:11:22.881] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 5/100)
INFO  [16:11:23.132] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 6/100)
INFO  [16:11:23.359] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 7/100)
INFO  [16:11:23.602] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 8/100)
INFO  [16:11:23.834] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 9/100)
INFO  [16:11:24.048] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 10/100)
INFO  [16:11:24.282] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 11/100)
INFO  [16:11:24.521] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 12/100)
INFO  [16:11:24.745] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 13/100)
INFO  [16:11:24.972] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 14/100)
INFO  [16:11:25.217] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 15/100)
INFO  [16:11:25.469] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 16/100)
INFO  [16:11:25.737] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 17/100)
INFO  [16:11:26.001] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 18/100)
INFO  [16:11:26.262] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 19/100)
INFO  [16:11:26.488] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 20/100)
INFO  [16:11:26.760] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 21/100)
INFO  [16:11:27.017] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 22/100)
INFO  [16:11:27.269] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 23/100)
INFO  [16:11:27.497] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 24/100)
INFO  [16:11:27.724] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 25/100)
INFO  [16:11:27.984] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 26/100)
INFO  [16:11:28.218] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 27/100)
INFO  [16:11:28.470] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 28/100)
INFO  [16:11:28.721] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 29/100)
INFO  [16:11:28.973] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 30/100)
INFO  [16:11:29.213] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 31/100)
INFO  [16:11:29.436] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 32/100)
INFO  [16:11:29.669] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 33/100)
INFO  [16:11:29.902] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 34/100)
INFO  [16:11:30.181] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 35/100)
INFO  [16:11:30.443] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 36/100)
INFO  [16:11:30.683] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 37/100)
INFO  [16:11:30.933] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 38/100)
INFO  [16:11:31.147] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 39/100)
INFO  [16:11:31.383] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 40/100)
INFO  [16:11:31.623] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 41/100)
INFO  [16:11:31.859] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 42/100)
INFO  [16:11:32.110] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 43/100)
INFO  [16:11:32.350] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 44/100)
INFO  [16:11:32.580] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 45/100)
INFO  [16:11:32.820] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 46/100)
INFO  [16:11:33.058] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 47/100)
INFO  [16:11:33.288] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 48/100)
INFO  [16:11:33.535] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 49/100)
INFO  [16:11:33.776] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 50/100)
INFO  [16:11:34.037] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 51/100)
INFO  [16:11:34.267] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 52/100)
INFO  [16:11:34.542] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 53/100)
INFO  [16:11:34.816] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 54/100)
INFO  [16:11:35.144] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 55/100)
INFO  [16:11:35.391] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 56/100)
INFO  [16:11:35.659] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 57/100)
INFO  [16:11:35.890] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 58/100)
INFO  [16:11:36.159] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 59/100)
INFO  [16:11:36.412] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 60/100)
INFO  [16:11:36.657] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 61/100)
INFO  [16:11:36.929] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 62/100)
INFO  [16:11:37.174] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 63/100)
INFO  [16:11:37.422] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 64/100)
INFO  [16:11:37.650] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 65/100)
INFO  [16:11:37.942] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 66/100)
INFO  [16:11:38.178] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 67/100)
INFO  [16:11:38.412] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 68/100)
INFO  [16:11:38.682] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 69/100)
INFO  [16:11:38.923] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 70/100)
INFO  [16:11:39.182] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 71/100)
INFO  [16:11:39.425] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 72/100)
INFO  [16:11:39.653] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 73/100)
INFO  [16:11:39.939] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 74/100)
INFO  [16:11:40.216] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 75/100)
INFO  [16:11:40.439] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 76/100)
INFO  [16:11:40.734] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 77/100)
INFO  [16:11:40.995] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 78/100)
INFO  [16:11:41.222] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 79/100)
INFO  [16:11:41.501] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 80/100)
INFO  [16:11:41.758] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 81/100)
INFO  [16:11:41.998] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 82/100)
INFO  [16:11:42.260] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 83/100)
INFO  [16:11:42.514] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 84/100)
INFO  [16:11:42.740] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 85/100)
INFO  [16:11:42.987] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 86/100)
INFO  [16:11:43.292] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 87/100)
INFO  [16:11:43.503] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 88/100)
INFO  [16:11:43.773] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 89/100)
INFO  [16:11:44.005] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 90/100)
INFO  [16:11:44.298] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 91/100)
INFO  [16:11:44.622] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 92/100)
INFO  [16:11:44.910] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 93/100)
INFO  [16:11:45.200] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 94/100)
INFO  [16:11:45.476] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 95/100)
INFO  [16:11:45.730] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 96/100)
INFO  [16:11:45.995] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 97/100)
INFO  [16:11:46.273] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 98/100)
INFO  [16:11:46.578] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 99/100)
INFO  [16:11:46.808] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 100/100)
INFO  [16:11:47.091] [mlr3] Finished benchmark
INFO  [16:11:47.184] [bbotk] Result of batch 1:
INFO  [16:11:47.186] [bbotk]  classif.ranger.max.depth   classif.ce warnings errors runtime_learners
INFO  [16:11:47.186] [bbotk]                        10 0.0008739496        0      0             24.1
INFO  [16:11:47.186] [bbotk]                                 uhash
INFO  [16:11:47.186] [bbotk]  eec08ecf-a954-4dbc-9648-efce7b1c553d
INFO  [16:11:47.192] [bbotk] Evaluating 1 configuration(s)
INFO  [16:11:47.197] [mlr3] Running benchmark with 100 resampling iterations
INFO  [16:11:47.204] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 1/100)
INFO  [16:11:47.495] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 2/100)
INFO  [16:11:47.751] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 3/100)
INFO  [16:11:48.042] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 4/100)
INFO  [16:11:48.308] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 5/100)
INFO  [16:11:48.572] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 6/100)
INFO  [16:11:48.829] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 7/100)
INFO  [16:11:49.099] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 8/100)
INFO  [16:11:49.392] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 9/100)
INFO  [16:11:49.716] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 10/100)
INFO  [16:11:49.980] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 11/100)
INFO  [16:11:50.279] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 12/100)
INFO  [16:11:50.544] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 13/100)
INFO  [16:11:50.789] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 14/100)
INFO  [16:11:51.033] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 15/100)
INFO  [16:11:51.311] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 16/100)
INFO  [16:11:51.566] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 17/100)
INFO  [16:11:51.810] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 18/100)
INFO  [16:11:52.075] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 19/100)
INFO  [16:11:52.430] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 20/100)
INFO  [16:11:52.678] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 21/100)
INFO  [16:11:52.946] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 22/100)
INFO  [16:11:53.212] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 23/100)
INFO  [16:11:53.496] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 24/100)
INFO  [16:11:53.794] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 25/100)
INFO  [16:11:54.078] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 26/100)
INFO  [16:11:54.378] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 27/100)
INFO  [16:11:54.665] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 28/100)
INFO  [16:11:54.922] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 29/100)
INFO  [16:11:55.191] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 30/100)
INFO  [16:11:55.439] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 31/100)
INFO  [16:11:55.712] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 32/100)
INFO  [16:11:55.972] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 33/100)
INFO  [16:11:56.220] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 34/100)
INFO  [16:11:56.499] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 35/100)
INFO  [16:11:56.781] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 36/100)
INFO  [16:11:57.079] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 37/100)
INFO  [16:11:57.343] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 38/100)
INFO  [16:11:57.620] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 39/100)
INFO  [16:11:57.941] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 40/100)
INFO  [16:11:58.224] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 41/100)
INFO  [16:11:58.503] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 42/100)
INFO  [16:11:58.790] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 43/100)
INFO  [16:11:59.057] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 44/100)
INFO  [16:11:59.317] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 45/100)
INFO  [16:11:59.594] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 46/100)
INFO  [16:11:59.860] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 47/100)
INFO  [16:12:00.103] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 48/100)
INFO  [16:12:00.395] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 49/100)
INFO  [16:12:00.644] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 50/100)
INFO  [16:12:00.873] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 51/100)
INFO  [16:12:01.161] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 52/100)
INFO  [16:12:01.475] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 53/100)
INFO  [16:12:01.761] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 54/100)
INFO  [16:12:02.083] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 55/100)
INFO  [16:12:02.317] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 56/100)
INFO  [16:12:02.634] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 57/100)
INFO  [16:12:02.917] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 58/100)
INFO  [16:12:03.180] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 59/100)
INFO  [16:12:03.487] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 60/100)
INFO  [16:12:03.769] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 61/100)
INFO  [16:12:04.104] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 62/100)
INFO  [16:12:04.425] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 63/100)
INFO  [16:12:04.697] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 64/100)
INFO  [16:12:05.010] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 65/100)
INFO  [16:12:05.273] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 66/100)
INFO  [16:12:05.582] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 67/100)
INFO  [16:12:05.913] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 68/100)
INFO  [16:12:06.186] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 69/100)
INFO  [16:12:06.486] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 70/100)
INFO  [16:12:06.783] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 71/100)
INFO  [16:12:07.071] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 72/100)
INFO  [16:12:07.372] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 73/100)
INFO  [16:12:07.639] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 74/100)
INFO  [16:12:07.945] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 75/100)
INFO  [16:12:08.244] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 76/100)
INFO  [16:12:08.535] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 77/100)
INFO  [16:12:08.859] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 78/100)
INFO  [16:12:09.170] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 79/100)
INFO  [16:12:09.450] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 80/100)
INFO  [16:12:09.755] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 81/100)
INFO  [16:12:10.049] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 82/100)
INFO  [16:12:10.326] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 83/100)
INFO  [16:12:10.624] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 84/100)
INFO  [16:12:10.913] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 85/100)
INFO  [16:12:11.616] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 86/100)
INFO  [16:12:11.890] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 87/100)
INFO  [16:12:12.142] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 88/100)
INFO  [16:12:12.386] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 89/100)
INFO  [16:12:12.628] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 90/100)
INFO  [16:12:12.948] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 91/100)
INFO  [16:12:13.208] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 92/100)
INFO  [16:12:13.452] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 93/100)
INFO  [16:12:13.691] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 94/100)
INFO  [16:12:13.934] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 95/100)
INFO  [16:12:14.156] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 96/100)
INFO  [16:12:14.388] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 97/100)
INFO  [16:12:14.640] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 98/100)
INFO  [16:12:14.891] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 99/100)
INFO  [16:12:15.116] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 100/100)
INFO  [16:12:15.369] [mlr3] Finished benchmark
INFO  [16:12:15.456] [bbotk] Result of batch 2:
INFO  [16:12:15.458] [bbotk]  classif.ranger.max.depth  classif.ce warnings errors runtime_learners
INFO  [16:12:15.458] [bbotk]                         5 0.001445378        0      0            26.43
INFO  [16:12:15.458] [bbotk]                                 uhash
INFO  [16:12:15.458] [bbotk]  06641505-374e-4cb8-981b-cf4fc6a1e270
INFO  [16:12:15.463] [bbotk] Evaluating 1 configuration(s)
INFO  [16:12:15.468] [mlr3] Running benchmark with 100 resampling iterations
INFO  [16:12:15.473] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 1/100)
INFO  [16:12:15.706] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 2/100)
INFO  [16:12:15.969] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 3/100)
INFO  [16:12:16.204] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 4/100)
INFO  [16:12:16.432] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 5/100)
INFO  [16:12:16.667] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 6/100)
INFO  [16:12:16.907] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 7/100)
INFO  [16:12:17.143] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 8/100)
INFO  [16:12:17.371] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 9/100)
INFO  [16:12:17.609] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 10/100)
INFO  [16:12:17.873] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 11/100)
INFO  [16:12:18.138] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 12/100)
INFO  [16:12:18.353] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 13/100)
INFO  [16:12:18.598] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 14/100)
INFO  [16:12:18.813] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 15/100)
INFO  [16:12:19.061] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 16/100)
INFO  [16:12:19.267] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 17/100)
INFO  [16:12:19.467] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 18/100)
INFO  [16:12:19.707] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 19/100)
INFO  [16:12:19.927] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 20/100)
INFO  [16:12:20.136] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 21/100)
INFO  [16:12:20.356] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 22/100)
INFO  [16:12:20.576] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 23/100)
INFO  [16:12:20.823] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 24/100)
INFO  [16:12:21.070] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 25/100)
INFO  [16:12:21.278] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 26/100)
INFO  [16:12:21.513] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 27/100)
INFO  [16:12:21.728] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 28/100)
INFO  [16:12:21.970] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 29/100)
INFO  [16:12:22.192] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 30/100)
INFO  [16:12:22.439] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 31/100)
INFO  [16:12:22.669] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 32/100)
INFO  [16:12:22.939] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 33/100)
INFO  [16:12:23.262] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 34/100)
INFO  [16:12:23.483] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 35/100)
INFO  [16:12:23.742] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 36/100)
INFO  [16:12:23.974] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 37/100)
INFO  [16:12:24.204] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 38/100)
INFO  [16:12:24.436] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 39/100)
INFO  [16:12:24.656] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 40/100)
INFO  [16:12:24.874] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 41/100)
INFO  [16:12:25.116] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 42/100)
INFO  [16:12:25.379] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 43/100)
INFO  [16:12:25.614] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 44/100)
INFO  [16:12:25.839] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 45/100)
INFO  [16:12:26.091] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 46/100)
INFO  [16:12:26.350] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 47/100)
INFO  [16:12:26.626] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 48/100)
INFO  [16:12:26.861] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 49/100)
INFO  [16:12:27.116] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 50/100)
INFO  [16:12:27.356] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 51/100)
INFO  [16:12:27.576] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 52/100)
INFO  [16:12:27.826] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 53/100)
INFO  [16:12:28.075] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 54/100)
INFO  [16:12:28.298] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 55/100)
INFO  [16:12:28.496] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 56/100)
INFO  [16:12:28.728] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 57/100)
INFO  [16:12:28.968] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 58/100)
INFO  [16:12:29.199] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 59/100)
INFO  [16:12:29.402] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 60/100)
INFO  [16:12:29.622] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 61/100)
INFO  [16:12:29.876] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 62/100)
INFO  [16:12:30.143] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 63/100)
INFO  [16:12:30.346] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 64/100)
INFO  [16:12:30.558] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 65/100)
INFO  [16:12:30.824] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 66/100)
INFO  [16:12:31.065] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 67/100)
INFO  [16:12:31.351] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 68/100)
INFO  [16:12:31.579] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 69/100)
INFO  [16:12:31.822] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 70/100)
INFO  [16:12:32.053] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 71/100)
INFO  [16:12:32.334] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 72/100)
INFO  [16:12:32.539] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 73/100)
INFO  [16:12:32.788] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 74/100)
INFO  [16:12:33.018] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 75/100)
INFO  [16:12:33.250] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 76/100)
INFO  [16:12:33.482] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 77/100)
INFO  [16:12:33.723] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 78/100)
INFO  [16:12:33.929] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 79/100)
INFO  [16:12:34.136] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 80/100)
INFO  [16:12:34.455] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 81/100)
INFO  [16:12:34.677] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 82/100)
INFO  [16:12:34.937] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 83/100)
INFO  [16:12:35.196] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 84/100)
INFO  [16:12:35.469] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 85/100)
INFO  [16:12:35.716] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 86/100)
INFO  [16:12:35.948] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 87/100)
INFO  [16:12:36.226] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 88/100)
INFO  [16:12:36.449] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 89/100)
INFO  [16:12:36.742] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 90/100)
INFO  [16:12:36.982] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 91/100)
INFO  [16:12:37.251] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 92/100)
INFO  [16:12:37.472] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 93/100)
INFO  [16:12:37.692] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 94/100)
INFO  [16:12:37.932] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 95/100)
INFO  [16:12:38.145] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 96/100)
INFO  [16:12:38.408] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 97/100)
INFO  [16:12:38.624] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 98/100)
INFO  [16:12:38.868] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 99/100)
INFO  [16:12:39.095] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 100/100)
INFO  [16:12:39.370] [mlr3] Finished benchmark
INFO  [16:12:39.479] [bbotk] Result of batch 3:
INFO  [16:12:39.481] [bbotk]  classif.ranger.max.depth  classif.ce warnings errors runtime_learners
INFO  [16:12:39.481] [bbotk]                         2 0.009285714        0      0            22.31
INFO  [16:12:39.481] [bbotk]                                 uhash
INFO  [16:12:39.481] [bbotk]  956f96fa-bd00-446f-87b0-5b29626ff65b
INFO  [16:12:39.489] [bbotk] Evaluating 1 configuration(s)
INFO  [16:12:39.496] [mlr3] Running benchmark with 100 resampling iterations
INFO  [16:12:39.505] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 1/100)
INFO  [16:12:39.745] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 2/100)
INFO  [16:12:40.014] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 3/100)
INFO  [16:12:40.258] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 4/100)
INFO  [16:12:40.509] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 5/100)
INFO  [16:12:40.764] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 6/100)
INFO  [16:12:40.979] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 7/100)
INFO  [16:12:41.265] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 8/100)
INFO  [16:12:41.502] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 9/100)
INFO  [16:12:41.780] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 10/100)
INFO  [16:12:42.018] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 11/100)
INFO  [16:12:42.313] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 12/100)
INFO  [16:12:42.543] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 13/100)
INFO  [16:12:42.807] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 14/100)
INFO  [16:12:43.029] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 15/100)
INFO  [16:12:43.230] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 16/100)
INFO  [16:12:43.481] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 17/100)
INFO  [16:12:43.713] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 18/100)
INFO  [16:12:43.963] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 19/100)
INFO  [16:12:44.181] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 20/100)
INFO  [16:12:44.436] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 21/100)
INFO  [16:12:44.666] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 22/100)
INFO  [16:12:44.934] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 23/100)
INFO  [16:12:45.160] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 24/100)
INFO  [16:12:45.401] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 25/100)
INFO  [16:12:45.655] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 26/100)
INFO  [16:12:46.002] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 27/100)
INFO  [16:12:46.221] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 28/100)
INFO  [16:12:46.504] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 29/100)
INFO  [16:12:46.728] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 30/100)
INFO  [16:12:46.933] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 31/100)
INFO  [16:12:47.175] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 32/100)
INFO  [16:12:47.409] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 33/100)
INFO  [16:12:47.690] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 34/100)
INFO  [16:12:47.916] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 35/100)
INFO  [16:12:48.146] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 36/100)
INFO  [16:12:48.391] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 37/100)
INFO  [16:12:48.607] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 38/100)
INFO  [16:12:48.846] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 39/100)
INFO  [16:12:49.045] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 40/100)
INFO  [16:12:49.288] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 41/100)
INFO  [16:12:49.549] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 42/100)
INFO  [16:12:49.805] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 43/100)
INFO  [16:12:50.028] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 44/100)
INFO  [16:12:50.255] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 45/100)
INFO  [16:12:50.507] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 46/100)
INFO  [16:12:50.754] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 47/100)
INFO  [16:12:51.055] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 48/100)
INFO  [16:12:51.311] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 49/100)
INFO  [16:12:51.600] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 50/100)
INFO  [16:12:51.815] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 51/100)
INFO  [16:12:52.081] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 52/100)
INFO  [16:12:52.323] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 53/100)
INFO  [16:12:52.587] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 54/100)
INFO  [16:12:52.807] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 55/100)
INFO  [16:12:53.104] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 56/100)
INFO  [16:12:53.376] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 57/100)
INFO  [16:12:53.623] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 58/100)
INFO  [16:12:53.885] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 59/100)
INFO  [16:12:54.139] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 60/100)
INFO  [16:12:54.385] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 61/100)
INFO  [16:12:54.609] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 62/100)
INFO  [16:12:54.861] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 63/100)
INFO  [16:12:55.092] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 64/100)
INFO  [16:12:55.396] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 65/100)
INFO  [16:12:55.650] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 66/100)
INFO  [16:12:55.893] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 67/100)
INFO  [16:12:56.100] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 68/100)
INFO  [16:12:56.332] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 69/100)
INFO  [16:12:56.561] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 70/100)
INFO  [16:12:56.826] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 71/100)
INFO  [16:12:57.032] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 72/100)
INFO  [16:12:57.310] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 73/100)
INFO  [16:12:57.543] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 74/100)
INFO  [16:12:57.812] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 75/100)
INFO  [16:12:58.082] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 76/100)
INFO  [16:12:58.317] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 77/100)
INFO  [16:12:58.579] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 78/100)
INFO  [16:12:58.847] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 79/100)
INFO  [16:12:59.093] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 80/100)
INFO  [16:12:59.317] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 81/100)
INFO  [16:12:59.550] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 82/100)
INFO  [16:12:59.824] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 83/100)
INFO  [16:13:00.099] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 84/100)
INFO  [16:13:00.403] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 85/100)
INFO  [16:13:00.672] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 86/100)
INFO  [16:13:00.960] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 87/100)
INFO  [16:13:01.213] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 88/100)
INFO  [16:13:01.522] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 89/100)
INFO  [16:13:01.759] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 90/100)
INFO  [16:13:02.028] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 91/100)
INFO  [16:13:02.289] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 92/100)
INFO  [16:13:02.531] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 93/100)
INFO  [16:13:02.797] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 94/100)
INFO  [16:13:03.023] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 95/100)
INFO  [16:13:03.280] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 96/100)
INFO  [16:13:03.519] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 97/100)
INFO  [16:13:03.801] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 98/100)
INFO  [16:13:04.031] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 99/100)
INFO  [16:13:04.282] [mlr3] Applying learner 'imputemedian.fixfactors.encode.scale.classif.ranger' on task 'penguins' (iter 100/100)
INFO  [16:13:04.581] [mlr3] Finished benchmark
INFO  [16:13:04.675] [bbotk] Result of batch 4:
INFO  [16:13:04.676] [bbotk]  classif.ranger.max.depth classif.ce warnings errors runtime_learners
INFO  [16:13:04.676] [bbotk]                         1  0.1986387        0      0            23.43
INFO  [16:13:04.676] [bbotk]                                 uhash
INFO  [16:13:04.676] [bbotk]  2de630e8-670b-4cf6-9005-9e1ba40f3716
INFO  [16:13:04.696] [bbotk] Finished optimizing after 4 evaluation(s)
INFO  [16:13:04.696] [bbotk] Result:
INFO  [16:13:04.698] [bbotk]  classif.ranger.max.depth learner_param_vals  x_domain   classif.ce
INFO  [16:13:04.698] [bbotk]                     <int>             <list>    <list>        <num>
INFO  [16:13:04.698] [bbotk]                        10          <list[5]> <list[1]> 0.0008739496

预测新数据

代码
penguins_pred_mlr3 <- glrn$predict(task = tsk_penguins, row_ids = splits$test)

penguins_pred_mlr3_at <- at$predict(task = tsk_penguins, row_ids = splits$test)

模型评价

代码
# 混淆矩阵
penguins_pred_mlr3$confusion
           truth
response    Adelie Chinstrap Gentoo
  Adelie        38         0      0
  Chinstrap      0        18      0
  Gentoo         0         0     30
代码
penguins_pred_mlr3_at$confusion
           truth
response    Adelie Chinstrap Gentoo
  Adelie        38         0      0
  Chinstrap      0        18      0
  Gentoo         0         0     30
代码
# 查看评估指标
msrs()
<DictionaryMeasure> with 75 stored values
Keys: aic, bic, ci, ci.con_z, ci.cor_t, ci.holdout, ci.ncv, ci.wald_cv,
  classif.acc, classif.auc, classif.bacc, classif.bbrier, classif.ce,
  classif.costs, classif.dor, classif.fbeta, classif.fdr, classif.fn,
  classif.fnr, classif.fomr, classif.fp, classif.fpr, classif.logloss,
  classif.mauc_au1p, classif.mauc_au1u, classif.mauc_aunp,
  classif.mauc_aunu, classif.mauc_mu, classif.mbrier, classif.mcc,
  classif.npv, classif.ppv, classif.prauc, classif.precision,
  classif.recall, classif.sensitivity, classif.specificity, classif.tn,
  classif.tnr, classif.tp, classif.tpr, clust.ch, clust.dunn,
  clust.silhouette, clust.wss, debug_classif, internal_valid_score,
  oob_error, regr.bias, regr.ktau, regr.mae, regr.mape, regr.maxae,
  regr.medae, regr.medse, regr.mse, regr.msle, regr.pbias,
  regr.pinball, regr.rae, regr.rmse, regr.rmsle, regr.rrse, regr.rse,
  regr.rsq, regr.sae, regr.smape, regr.srho, regr.sse,
  selected_features, sim.jaccard, sim.phi, time_both, time_predict,
  time_train
代码
measure <- msrs(c("classif.acc", "classif.ce"))

penguins_pred_mlr3$score(measure)
classif.acc  classif.ce 
          1           0 
代码
# 交叉验证评估
# rr$score(measure)[, .(task_id, learner_id, iteration, classif.acc)]

观察数据

代码
import pandas as pd
from sklearn.model_selection import train_test_split, StratifiedKFold
from sklearn.ensemble import RandomForestClassifier
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import OneHotEncoder
from sklearn.impute import SimpleImputer
from sklearn.feature_selection import VarianceThreshold
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import roc_curve, roc_auc_score, accuracy_score


print(df_penguins.head())
  species     island  bill_length_mm  ...  flipper_length_mm  body_mass_g     sex
0  Adelie  Torgersen            39.1  ...              181.0       3750.0    MALE
1  Adelie  Torgersen            39.5  ...              186.0       3800.0  FEMALE
2  Adelie  Torgersen            40.3  ...              195.0       3250.0  FEMALE
3  Adelie  Torgersen             NaN  ...                NaN          NaN     NaN
4  Adelie  Torgersen            36.7  ...              193.0       3450.0  FEMALE

[5 rows x 7 columns]
代码
print(df_penguins.describe())
       bill_length_mm  bill_depth_mm  flipper_length_mm  body_mass_g
count      342.000000     342.000000         342.000000   342.000000
mean        43.921930      17.151170         200.915205  4201.754386
std          5.459584       1.974793          14.061714   801.954536
min         32.100000      13.100000         172.000000  2700.000000
25%         39.225000      15.600000         190.000000  3550.000000
50%         44.450000      17.300000         197.000000  4050.000000
75%         48.500000      18.700000         213.000000  4750.000000
max         59.600000      21.500000         231.000000  6300.000000

数据拆分

代码

df_penguins['species'] = pd.Categorical(df_penguins['species'])
X = df_penguins.drop(['species'], axis=1)
y = df_penguins['species']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=123, stratify=y)

# 交叉验证
skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=123)

创建配方

代码
numeric_features = X.select_dtypes(include=['int', 'float']).columns
categorical_features = X.select_dtypes(include=['object', 'category']).columns

preprocessor = ColumnTransformer([
    ('onehot', OneHotEncoder(), categorical_features),
    ('imputer', SimpleImputer(), numeric_features),
    ('variance_threshold', VarianceThreshold(), numeric_features)
])

创建模型

代码
rf = RandomForestClassifier(n_estimators=1000)
param_grid = {
    'max_depth': [None, 5, 10, 15, 20],
    'min_samples_split': [2, 5, 10]
}
grid_search = GridSearchCV(rf, param_grid, cv=skf)

创建工作流

代码
pipeline = Pipeline([
    ('preprocessor', preprocessor),
    ('model', rf)
])

拟合数据

代码
pipeline.fit(X_train, y_train)
Pipeline(steps=[('preprocessor',
                 ColumnTransformer(transformers=[('onehot', OneHotEncoder(),
                                                  Index(['island', 'sex'], dtype='object')),
                                                 ('imputer', SimpleImputer(),
                                                  Index(['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g'], dtype='object')),
                                                 ('variance_threshold',
                                                  VarianceThreshold(),
                                                  Index(['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g'], dtype='object'))])),
                ('model', RandomForestClassifier(n_estimators=1000))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.

预测新数据

代码
y_pred = pipeline.predict(X_test)

模型评价

代码
y_pred_proba = pipeline.predict_proba(X_test)
# fpr, tpr, _ = roc_curve(y_test, y_pred_proba[:, 1])
# roc_auc = roc_auc_score(y_test, y_pred_proba[:, 1])
accuracy = accuracy_score(y_test, y_pred)

print(accuracy)
1.0
回到顶部