12  Logistic Regression with tidymodels

12.1 NHANES Dataset

── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.2.1     ✔ readr     2.2.0
✔ forcats   1.0.1     ✔ stringr   1.6.0
✔ ggplot2   4.0.3     ✔ tibble    3.3.1
✔ lubridate 1.9.5     ✔ tidyr     1.3.2
✔ purrr     1.2.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library("NHANES")

data <- NHANES %>% 
  select(-DiabetesAge) %>%
  filter(!is.na(Diabetes)) 

dim(data)
[1] 9858   75
glimpse(data)
Rows: 9,858
Columns: 75
$ ID               <int> 51624, 51624, 51624, 51625, 51630, 51638, 51646, 5164…
$ SurveyYr         <fct> 2009_10, 2009_10, 2009_10, 2009_10, 2009_10, 2009_10,…
$ Gender           <fct> male, male, male, male, female, male, male, female, f…
$ Age              <int> 34, 34, 34, 4, 49, 9, 8, 45, 45, 45, 66, 58, 54, 10, …
$ AgeDecade        <fct>  30-39,  30-39,  30-39,  0-9,  40-49,  0-9,  0-9,  40…
$ AgeMonths        <int> 409, 409, 409, 49, 596, 115, 101, 541, 541, 541, 795,…
$ Race1            <fct> White, White, White, Other, White, White, White, Whit…
$ Race3            <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ Education        <fct> High School, High School, High School, NA, Some Colle…
$ MaritalStatus    <fct> Married, Married, Married, NA, LivePartner, NA, NA, M…
$ HHIncome         <fct> 25000-34999, 25000-34999, 25000-34999, 20000-24999, 3…
$ HHIncomeMid      <int> 30000, 30000, 30000, 22500, 40000, 87500, 60000, 8750…
$ Poverty          <dbl> 1.36, 1.36, 1.36, 1.07, 1.91, 1.84, 2.33, 5.00, 5.00,…
$ HomeRooms        <int> 6, 6, 6, 9, 5, 6, 7, 6, 6, 6, 5, 10, 6, 10, 10, 4, 3,…
$ HomeOwn          <fct> Own, Own, Own, Own, Rent, Rent, Own, Own, Own, Own, O…
$ Work             <fct> NotWorking, NotWorking, NotWorking, NA, NotWorking, N…
$ Weight           <dbl> 87.4, 87.4, 87.4, 17.0, 86.7, 29.8, 35.2, 75.7, 75.7,…
$ Length           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ HeadCirc         <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ Height           <dbl> 164.7, 164.7, 164.7, 105.4, 168.4, 133.1, 130.6, 166.…
$ BMI              <dbl> 32.22, 32.22, 32.22, 15.30, 30.57, 16.82, 20.64, 27.2…
$ BMICatUnder20yrs <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ BMI_WHO          <fct> 30.0_plus, 30.0_plus, 30.0_plus, 12.0_18.5, 30.0_plus…
$ Pulse            <int> 70, 70, 70, NA, 86, 82, 72, 62, 62, 62, 60, 62, 76, 8…
$ BPSysAve         <int> 113, 113, 113, NA, 112, 86, 107, 118, 118, 118, 111, …
$ BPDiaAve         <int> 85, 85, 85, NA, 75, 47, 37, 64, 64, 64, 63, 74, 85, 6…
$ BPSys1           <int> 114, 114, 114, NA, 118, 84, 114, 106, 106, 106, 124, …
$ BPDia1           <int> 88, 88, 88, NA, 82, 50, 46, 62, 62, 62, 64, 76, 86, 6…
$ BPSys2           <int> 114, 114, 114, NA, 108, 84, 108, 118, 118, 118, 108, …
$ BPDia2           <int> 88, 88, 88, NA, 74, 50, 36, 68, 68, 68, 62, 72, 88, 6…
$ BPSys3           <int> 112, 112, 112, NA, 116, 88, 106, 118, 118, 118, 114, …
$ BPDia3           <int> 82, 82, 82, NA, 76, 44, 38, 60, 60, 60, 64, 76, 82, 7…
$ Testosterone     <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ DirectChol       <dbl> 1.29, 1.29, 1.29, NA, 1.16, 1.34, 1.55, 2.12, 2.12, 2…
$ TotChol          <dbl> 3.49, 3.49, 3.49, NA, 6.70, 4.86, 4.09, 5.82, 5.82, 5…
$ UrineVol1        <int> 352, 352, 352, NA, 77, 123, 238, 106, 106, 106, 113, …
$ UrineFlow1       <dbl> NA, NA, NA, NA, 0.094, 1.538, 1.322, 1.116, 1.116, 1.…
$ UrineVol2        <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ UrineFlow2       <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ Diabetes         <fct> No, No, No, No, No, No, No, No, No, No, No, No, No, N…
$ HealthGen        <fct> Good, Good, Good, NA, Good, NA, NA, Vgood, Vgood, Vgo…
$ DaysPhysHlthBad  <int> 0, 0, 0, NA, 0, NA, NA, 0, 0, 0, 10, 0, 4, NA, NA, 0,…
$ DaysMentHlthBad  <int> 15, 15, 15, NA, 10, NA, NA, 3, 3, 3, 0, 0, 0, NA, NA,…
$ LittleInterest   <fct> Most, Most, Most, NA, Several, NA, NA, None, None, No…
$ Depressed        <fct> Several, Several, Several, NA, Several, NA, NA, None,…
$ nPregnancies     <int> NA, NA, NA, NA, 2, NA, NA, 1, 1, 1, NA, NA, NA, NA, N…
$ nBabies          <int> NA, NA, NA, NA, 2, NA, NA, NA, NA, NA, NA, NA, NA, NA…
$ Age1stBaby       <int> NA, NA, NA, NA, 27, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ SleepHrsNight    <int> 4, 4, 4, NA, 8, NA, NA, 8, 8, 8, 7, 5, 4, NA, 5, 7, N…
$ SleepTrouble     <fct> Yes, Yes, Yes, NA, Yes, NA, NA, No, No, No, No, No, Y…
$ PhysActive       <fct> No, No, No, NA, No, NA, NA, Yes, Yes, Yes, Yes, Yes, …
$ PhysActiveDays   <int> NA, NA, NA, NA, NA, NA, NA, 5, 5, 5, 7, 5, 1, NA, 2, …
$ TVHrsDay         <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ CompHrsDay       <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ TVHrsDayChild    <int> NA, NA, NA, 4, NA, 5, 1, NA, NA, NA, NA, NA, NA, 4, N…
$ CompHrsDayChild  <int> NA, NA, NA, 1, NA, 0, 6, NA, NA, NA, NA, NA, NA, 3, N…
$ Alcohol12PlusYr  <fct> Yes, Yes, Yes, NA, Yes, NA, NA, Yes, Yes, Yes, Yes, Y…
$ AlcoholDay       <int> NA, NA, NA, NA, 2, NA, NA, 3, 3, 3, 1, 2, 6, NA, NA, …
$ AlcoholYear      <int> 0, 0, 0, NA, 20, NA, NA, 52, 52, 52, 100, 104, 364, N…
$ SmokeNow         <fct> No, No, No, NA, Yes, NA, NA, NA, NA, NA, No, NA, NA, …
$ Smoke100         <fct> Yes, Yes, Yes, NA, Yes, NA, NA, No, No, No, Yes, No, …
$ Smoke100n        <fct> Smoker, Smoker, Smoker, NA, Smoker, NA, NA, Non-Smoke…
$ SmokeAge         <int> 18, 18, 18, NA, 38, NA, NA, NA, NA, NA, 13, NA, NA, N…
$ Marijuana        <fct> Yes, Yes, Yes, NA, Yes, NA, NA, Yes, Yes, Yes, NA, Ye…
$ AgeFirstMarij    <int> 17, 17, 17, NA, 18, NA, NA, 13, 13, 13, NA, 19, 15, N…
$ RegularMarij     <fct> No, No, No, NA, No, NA, NA, No, No, No, NA, Yes, Yes,…
$ AgeRegMarij      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 20, 15, N…
$ HardDrugs        <fct> Yes, Yes, Yes, NA, Yes, NA, NA, No, No, No, No, Yes, …
$ SexEver          <fct> Yes, Yes, Yes, NA, Yes, NA, NA, Yes, Yes, Yes, Yes, Y…
$ SexAge           <int> 16, 16, 16, NA, 12, NA, NA, 13, 13, 13, 17, 22, 12, N…
$ SexNumPartnLife  <int> 8, 8, 8, NA, 10, NA, NA, 20, 20, 20, 15, 7, 100, NA, …
$ SexNumPartYear   <int> 1, 1, 1, NA, 1, NA, NA, 0, 0, 0, NA, 1, 1, NA, NA, 1,…
$ SameSex          <fct> No, No, No, NA, Yes, NA, NA, Yes, Yes, Yes, No, No, N…
$ SexOrientation   <fct> Heterosexual, Heterosexual, Heterosexual, NA, Heteros…
$ PregnantNow      <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…

12.2 Missing data

data |> 
  as.data.frame() |> 
  Amelia::missmap()

SumNa <- function(col){sum(is.na(col))}

data.sum <- data %>% 
    summarise_all(SumNa) %>%
    tidyr::gather(key='feature', value='SumNa') %>%
    arrange(-SumNa) %>%
    mutate(PctNa = SumNa/nrow(data))

data.sum
# A tibble: 75 × 3
   feature          SumNa PctNa
   <chr>            <int> <dbl>
 1 HeadCirc          9858 1    
 2 Length            9452 0.959
 3 TVHrsDayChild     9205 0.934
 4 CompHrsDayChild   9205 0.934
 5 BMICatUnder20yrs  8587 0.871
 6 AgeRegMarij       8492 0.861
 7 UrineFlow2        8382 0.850
 8 UrineVol2         8380 0.850
 9 PregnantNow       8162 0.828
10 Age1stBaby        7976 0.809
# ℹ 65 more rows
data.sum2 <- data.sum %>% 
  filter(! (feature %in% c('ID','Diabetes'))) %>%
  filter(PctNa < .45)


data.sum2$feature
 [1] "SexAge"          "SexNumPartnLife" "HardDrugs"       "SexEver"        
 [5] "SameSex"         "AlcoholYear"     "Alcohol12PlusYr" "LittleInterest" 
 [9] "Depressed"       "Education"       "MaritalStatus"   "Smoke100"       
[13] "Smoke100n"       "DaysPhysHlthBad" "DaysMentHlthBad" "HealthGen"      
[17] "SleepHrsNight"   "Work"            "SleepTrouble"    "BPSys1"         
[21] "BPDia1"          "PhysActive"      "BPSys2"          "BPDia2"         
[25] "BPSys3"          "BPDia3"          "UrineFlow1"      "DirectChol"     
[29] "TotChol"         "BPSysAve"        "BPDiaAve"        "Pulse"          
[33] "UrineVol1"       "HHIncome"        "HHIncomeMid"     "Poverty"        
[37] "AgeDecade"       "BMI_WHO"         "BMI"             "Height"         
[41] "Weight"          "HomeRooms"       "HomeOwn"         "SurveyYr"       
[45] "Gender"          "Age"             "Race1"          
data_F <- data %>% 
  select(ID, Diabetes, data.sum2$feature) %>%
  filter(!is.na(Diabetes))

data_F |>
  as.data.frame() |>
  Amelia::missmap()

features <- colnames(data_F)[!colnames(data_F) %in% c('diq010', 'seqn')]
features_plus <- paste0(features, collapse = " + ")
my_formula <- paste0("Diabetes ~ ", features_plus) |> as.formula()

my_formula
Diabetes ~ ID + Diabetes + SexAge + SexNumPartnLife + HardDrugs + 
    SexEver + SameSex + AlcoholYear + Alcohol12PlusYr + LittleInterest + 
    Depressed + Education + MaritalStatus + Smoke100 + Smoke100n + 
    DaysPhysHlthBad + DaysMentHlthBad + HealthGen + SleepHrsNight + 
    Work + SleepTrouble + BPSys1 + BPDia1 + PhysActive + BPSys2 + 
    BPDia2 + BPSys3 + BPDia3 + UrineFlow1 + DirectChol + TotChol + 
    BPSysAve + BPDiaAve + Pulse + UrineVol1 + HHIncome + HHIncomeMid + 
    Poverty + AgeDecade + BMI_WHO + BMI + Height + Weight + HomeRooms + 
    HomeOwn + SurveyYr + Gender + Age + Race1

12.2.1 Install if not Function

install_if_not <- function( list.of.packages ) {
  new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
  if(length(new.packages)) { install.packages(new.packages) } else { print(paste0("the package '", list.of.packages , "' is already installed")) }
}
install_if_not('tidymodels')
[1] "the package 'tidymodels' is already installed"
splits <- initial_split(data,
                        prop = 3/4)
set.seed(1001)
diab_folds <- vfold_cv(training(splits), v = 10)
── Attaching packages ────────────────────────────────────── tidymodels 1.5.0 ──
✔ broom        1.0.12     ✔ tailor       0.1.0 
✔ dials        1.4.3      ✔ tune         2.1.0 
✔ infer        1.1.0      ✔ workflows    1.3.0 
✔ modeldata    1.5.1      ✔ workflowsets 1.1.1 
✔ parsnip      1.5.0      ✔ yardstick    1.4.0 
✔ recipes      1.3.2      
── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ──
✖ scales::discard() masks purrr::discard()
✖ dplyr::filter()   masks stats::filter()
✖ recipes::fixed()  masks stringr::fixed()
✖ dplyr::lag()      masks stats::lag()
✖ yardstick::spec() masks readr::spec()
✖ recipes::step()   masks stats::step()
glmnet_rec <- recipe(my_formula, data = training(splits)) %>% 
  step_impute_knn(all_predictors(), neighbors = 3) %>%
  step_range(all_numeric_predictors()) %>%
  step_dummy(all_nominal_predictors()) 
glmnet_rec %>% 
  prep() %>% 
  bake(new_data = NULL) |>
  as.data.frame() |>
  Amelia::missmap()

diab_folds$splits[[1]] %>%  analysis()
# A tibble: 6,653 × 75
      ID SurveyYr Gender   Age AgeDecade AgeMonths Race1    Race3    Education  
   <int> <fct>    <fct>  <int> <fct>         <int> <fct>    <fct>    <fct>      
 1 63087 2011_12  male       3 " 0-9"           NA White    White    <NA>       
 2 70639 2011_12  female    34 " 30-39"         NA Mexican  Mexican  8th Grade  
 3 56288 2009_10  male      43 " 40-49"        523 Mexican  <NA>     8th Grade  
 4 56778 2009_10  female     5 " 0-9"           64 White    <NA>     <NA>       
 5 63714 2011_12  male      48 " 40-49"         NA White    White    Some Colle…
 6 51694 2009_10  male      38 " 30-39"        458 White    <NA>     Some Colle…
 7 69450 2011_12  female    39 " 30-39"         NA White    White    College Gr…
 8 68249 2011_12  male      60 " 60-69"         NA White    White    Some Colle…
 9 67701 2011_12  male      54 " 50-59"         NA Hispanic Hispanic Some Colle…
10 68200 2011_12  male      51 " 50-59"         NA Black    Black    Some Colle…
# ℹ 6,643 more rows
# ℹ 66 more variables: MaritalStatus <fct>, HHIncome <fct>, HHIncomeMid <int>,
#   Poverty <dbl>, HomeRooms <int>, HomeOwn <fct>, Work <fct>, Weight <dbl>,
#   Length <dbl>, HeadCirc <dbl>, Height <dbl>, BMI <dbl>,
#   BMICatUnder20yrs <fct>, BMI_WHO <fct>, Pulse <int>, BPSysAve <int>,
#   BPDiaAve <int>, BPSys1 <int>, BPDia1 <int>, BPSys2 <int>, BPDia2 <int>,
#   BPSys3 <int>, BPDia3 <int>, Testosterone <dbl>, DirectChol <dbl>, …
glmnet_rec %>% 
  prep() %>% 
  bake(new_data = diab_folds$splits[[1]] %>% analysis()) |>
  as.data.frame() |>
  Amelia::missmap()

glmnet_spec <- logistic_reg(penalty = tune() ,
                             mixture = tune()) %>% 
  set_engine("glmnet") %>% 
  set_mode("classification")
glmnet_wflow <- workflow() %>% 
  add_model(glmnet_spec) %>% 
  add_recipe(glmnet_rec)
glmnet_param <- glmnet_wflow %>% 
  extract_parameter_set_dials()

The mixture parameter can bet set between 0 and 1 where: - ridge model (mixture = alpha = 0) - lasso model (mixture = alpha = 1)

start_grid <- extract_parameter_set_dials(glmnet_spec) %>% 
  grid_latin_hypercube(size = 25, original = TRUE)
Warning: `grid_latin_hypercube()` was deprecated in dials 1.3.0.
ℹ Please use `grid_space_filling()` instead.
#expand.grid(
#  penalty = seq(10^(-10), 10^0, length.out = 5),
#  mixture = seq(0, 1, length.out =5)
#)
# All operating systems
library(doParallel)
Loading required package: foreach

Attaching package: 'foreach'
The following objects are masked from 'package:purrr':

    accumulate, when
Loading required package: iterators
Loading required package: parallel
tic()

glmnet_initial <- glmnet_wflow %>% 
  tune_grid(resamples = diab_folds, 
            grid = start_grid, 
            metrics = metric_set(yardstick::pr_auc))

toc(log = TRUE, quiet = FALSE)
829.46 sec elapsed
collect_metrics(glmnet_initial) %>%
  ggplot(aes(x = penalty, y=mixture, z = mean)) + 
  geom_contour_filled() +
  scale_fill_gradient(low = "green", high = "red")
Warning: `stat_contour()`: Zero contours were generated
Warning in min(x): no non-missing arguments to min; returning Inf
Warning in max(x): no non-missing arguments to max; returning -Inf

tic()

glmnet_tune <- glmnet_wflow %>%
  tune_bayes(
    resamples = diab_folds,
    metrics = metric_set(yardstick::pr_auc),
    initial = glmnet_initial,
    param_info = glmnet_param,
    iter = 25,
    control = control_bayes(verbose = TRUE)
  )
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
i Estimating performance
i Fold01: preprocessor 1/1
i Fold01: preprocessor 1/1 (prediction data)
i Fold01: preprocessor 1/1, model 1/1
i Fold01: preprocessor 1/1, model 1/1 (predictions)
i Fold02: preprocessor 1/1
i Fold02: preprocessor 1/1 (prediction data)
i Fold02: preprocessor 1/1, model 1/1
i Fold02: preprocessor 1/1, model 1/1 (predictions)
i Fold03: preprocessor 1/1
i Fold03: preprocessor 1/1 (prediction data)
i Fold03: preprocessor 1/1, model 1/1
i Fold03: preprocessor 1/1, model 1/1 (predictions)
i Fold04: preprocessor 1/1
i Fold04: preprocessor 1/1 (prediction data)
i Fold04: preprocessor 1/1, model 1/1
i Fold04: preprocessor 1/1, model 1/1 (predictions)
i Fold05: preprocessor 1/1
i Fold05: preprocessor 1/1 (prediction data)
i Fold05: preprocessor 1/1, model 1/1
i Fold05: preprocessor 1/1, model 1/1 (predictions)
i Fold06: preprocessor 1/1
i Fold06: preprocessor 1/1 (prediction data)
i Fold06: preprocessor 1/1, model 1/1
i Fold06: preprocessor 1/1, model 1/1 (predictions)
i Fold07: preprocessor 1/1
i Fold07: preprocessor 1/1 (prediction data)
i Fold07: preprocessor 1/1, model 1/1
i Fold07: preprocessor 1/1, model 1/1 (predictions)
i Fold08: preprocessor 1/1
i Fold08: preprocessor 1/1 (prediction data)
i Fold08: preprocessor 1/1, model 1/1
i Fold08: preprocessor 1/1, model 1/1 (predictions)
i Fold09: preprocessor 1/1
i Fold09: preprocessor 1/1 (prediction data)
i Fold09: preprocessor 1/1, model 1/1
i Fold09: preprocessor 1/1, model 1/1 (predictions)
i Fold10: preprocessor 1/1
i Fold10: preprocessor 1/1 (prediction data)
i Fold10: preprocessor 1/1, model 1/1
i Fold10: preprocessor 1/1, model 1/1 (predictions)
✓ Estimating performance
! No improvement for 10 iterations; returning current results.
toc(log = TRUE, quiet = FALSE)
11518.15 sec elapsed
collect_metrics(glmnet_tune) %>%
  knitr::kable()
penalty mixture .metric .estimator mean n std_err .config .iter
0.0000000 0.1643439 pr_auc binary 0.9868934 10 0.0010394 pre0_mod01_post0 0
0.0000000 0.7092072 pr_auc binary 0.9869032 10 0.0010371 pre0_mod02_post0 0
0.0000000 0.4414379 pr_auc binary 0.9868944 10 0.0010368 pre0_mod03_post0 0
0.0000000 0.7543177 pr_auc binary 0.9868978 10 0.0010382 pre0_mod04_post0 0
0.0000000 0.9555306 pr_auc binary 0.9869017 10 0.0010386 pre0_mod05_post0 0
0.0000000 0.8036732 pr_auc binary 0.9869009 10 0.0010348 pre0_mod06_post0 0
0.0000000 0.5044255 pr_auc binary 0.9868972 10 0.0010370 pre0_mod07_post0 0
0.0000002 0.6188319 pr_auc binary 0.9868987 10 0.0010385 pre0_mod08_post0 0
0.0000003 0.2042983 pr_auc binary 0.9868944 10 0.0010390 pre0_mod09_post0 0
0.0000007 0.0592289 pr_auc binary 0.9868576 10 0.0010643 pre0_mod10_post0 0
0.0000012 0.2524736 pr_auc binary 0.9868969 10 0.0010380 pre0_mod11_post0 0
0.0000060 0.6792902 pr_auc binary 0.9869041 10 0.0010368 pre0_mod12_post0 0
0.0000129 0.8995539 pr_auc binary 0.9869006 10 0.0010358 pre0_mod13_post0 0
0.0000355 0.9970853 pr_auc binary 0.9868861 10 0.0010445 pre0_mod14_post0 0
0.0000663 0.4289253 pr_auc binary 0.9868838 10 0.0010509 pre0_mod15_post0 0
0.0001466 0.3058491 pr_auc binary 0.9868292 10 0.0010785 pre0_mod16_post0 0
0.0002949 0.3368051 pr_auc binary 0.9867701 10 0.0011160 pre0_mod17_post0 0
0.0011027 0.1242088 pr_auc binary 0.9866638 10 0.0011500 pre0_mod18_post0 0
0.0022740 0.8833344 pr_auc binary 0.9864214 10 0.0011415 pre0_mod19_post0 0
0.0098437 0.1344158 pr_auc binary 0.9862894 10 0.0011414 pre0_mod20_post0 0
0.0154328 0.6507917 pr_auc binary 0.9853240 10 0.0008588 pre0_mod21_post0 0
0.0355219 0.5252280 pr_auc binary 0.9846216 10 0.0008069 pre0_mod22_post0 0
0.1116117 0.3655130 pr_auc binary 0.9840530 10 0.0008146 pre0_mod23_post0 0
0.3199856 0.8449990 pr_auc binary 0.9605710 10 0.0008060 pre0_mod24_post0 0
0.4388775 0.5734638 pr_auc binary 0.9605710 10 0.0008060 pre0_mod25_post0 0
0.0643934 0.0579622 pr_auc binary 0.9852339 10 0.0010608 iter01 1
0.0000009 0.9970158 pr_auc binary 0.9868620 10 0.0010463 iter02 2
0.0000000 0.0560124 pr_auc binary 0.9868116 10 0.0010955 iter03 3
0.0000151 0.0507295 pr_auc binary 0.9869178 10 0.0010740 iter04 4
0.0002682 0.9980401 pr_auc binary 0.9866458 10 0.0011625 iter05 5
0.0000000 0.9702690 pr_auc binary 0.9868440 10 0.0010437 iter06 6
0.0000000 0.1022836 pr_auc binary 0.9869319 10 0.0010443 iter07 7
0.0000000 0.9946532 pr_auc binary 0.9868533 10 0.0010071 iter08 8
0.0000001 0.9995959 pr_auc binary 0.9868337 10 0.0010716 iter09 9
0.0000027 0.1822085 pr_auc binary 0.9868048 10 0.0010481 iter10 10
0.0000001 0.0533310 pr_auc binary 0.9868886 10 0.0010577 iter11 11
0.0032301 0.3932492 pr_auc binary 0.9865877 10 0.0011367 iter12 12
0.0000031 0.9995316 pr_auc binary 0.9868537 10 0.0010594 iter13 13
0.0000000 0.0507687 pr_auc binary 0.9867953 10 0.0010768 iter14 14
0.0000003 0.9864689 pr_auc binary 0.9867612 10 0.0010959 iter15 15
0.0000398 0.0515626 pr_auc binary 0.9869042 10 0.0010773 iter16 16
0.0000239 0.5011268 pr_auc binary 0.9867798 10 0.0010322 iter17 17
collect_metrics(glmnet_tune) %>%
  ggplot(aes(x = penalty, y=mixture, z = mean)) + 
  geom_contour_filled() +
  scale_fill_gradient(low = "green", high = "red")
Warning: `stat_contour()`: Zero contours were generated
Warning in min(x): no non-missing arguments to min; returning Inf
Warning in max(x): no non-missing arguments to max; returning -Inf

autoplot(glmnet_tune, type = "performance")

autoplot(glmnet_tune, type = "parameters")

best_params <- select_best(glmnet_tune) %>%
  glimpse()
Warning in select_best(glmnet_tune): No value of `metric` was given; "pr_auc"
will be used.
Rows: 1
Columns: 3
$ penalty <dbl> 1.394207e-09
$ mixture <dbl> 0.1022836
$ .config <chr> "iter07"
glmnet_spec_final <- tibble(
    penalty = best_params$penalty,
    mixture = best_params$mixture
  )
#update(glmnet_spec,
                      #penalty = best_params$penalty,
                      #mixture = best_params$mixture)
glmnet_spec_final 
# A tibble: 1 × 2
        penalty mixture
          <dbl>   <dbl>
1 0.00000000139   0.102
final_glmnet_wflow <- glmnet_wflow %>% 
  finalize_workflow(glmnet_spec_final)
final_glmnet_fit <- final_glmnet_wflow %>% 
  fit(training(splits))
final_glmnet_fit
══ Workflow [trained] ══════════════════════════════════════════════════════════
Preprocessor: Recipe
Model: logistic_reg()

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

• step_impute_knn()
• step_range()
• step_dummy()

── Model ───────────────────────────────────────────────────────────────────────

Call:  glmnet::glmnet(x = maybe_matrix(x), y = y, family = "binomial",      alpha = ~0.102283616164869) 

    Df  %Dev  Lambda
1    0  0.00 0.78420
2    1  0.29 0.71450
3    1  0.59 0.65110
4    2  1.01 0.59320
5    2  1.54 0.54050
6    4  2.17 0.49250
7    8  3.13 0.44880
8   11  4.26 0.40890
9   11  5.51 0.37260
10  11  6.70 0.33950
11  11  7.84 0.30930
12  13  9.01 0.28180
13  15 10.17 0.25680
14  17 11.33 0.23400
15  18 12.47 0.21320
16  20 13.58 0.19430
17  20 14.67 0.17700
18  21 15.68 0.16130
19  22 16.65 0.14690
20  25 17.61 0.13390
21  25 18.53 0.12200
22  27 19.40 0.11120
23  27 20.20 0.10130
24  28 20.95 0.09229
25  29 21.66 0.08409
26  30 22.31 0.07662
27  31 22.93 0.06981
28  34 23.53 0.06361
29  35 24.11 0.05796
30  36 24.64 0.05281
31  39 25.16 0.04812
32  39 25.64 0.04384
33  41 26.09 0.03995
34  45 26.52 0.03640
35  45 26.92 0.03317
36  46 27.29 0.03022
37  49 27.64 0.02754
38  53 27.98 0.02509
39  53 28.31 0.02286
40  56 28.62 0.02083
41  60 28.90 0.01898
42  59 29.17 0.01729
43  59 29.42 0.01576
44  60 29.64 0.01436
45  61 29.85 0.01308
46  63 30.04 0.01192

...
and 54 more lines.
final_glmnet_fit %>% 
  # This returns the parsnip object:
  extract_fit_parsnip() %>% 
  # Now tidy the linear model object:
  tidy() 

Attaching package: 'Matrix'
The following objects are masked from 'package:tidyr':

    expand, pack, unpack
Loaded glmnet 5.0
# A tibble: 84 × 3
   term            estimate       penalty
   <chr>              <dbl>         <dbl>
 1 (Intercept)      -8.18   0.00000000139
 2 ID                0.563  0.00000000139
 3 SexAge           -0.143  0.00000000139
 4 SexNumPartnLife  -0.0168 0.00000000139
 5 AlcoholYear      -0.768  0.00000000139
 6 DaysPhysHlthBad   0.465  0.00000000139
 7 DaysMentHlthBad   0.215  0.00000000139
 8 SleepHrsNight     0.926  0.00000000139
 9 BPSys1           -0.375  0.00000000139
10 BPDia1           -3.68   0.00000000139
# ℹ 74 more rows
extract_fit_parsnip(final_glmnet_fit)
parsnip model object


Call:  glmnet::glmnet(x = maybe_matrix(x), y = y, family = "binomial",      alpha = ~0.102283616164869) 

    Df  %Dev  Lambda
1    0  0.00 0.78420
2    1  0.29 0.71450
3    1  0.59 0.65110
4    2  1.01 0.59320
5    2  1.54 0.54050
6    4  2.17 0.49250
7    8  3.13 0.44880
8   11  4.26 0.40890
9   11  5.51 0.37260
10  11  6.70 0.33950
11  11  7.84 0.30930
12  13  9.01 0.28180
13  15 10.17 0.25680
14  17 11.33 0.23400
15  18 12.47 0.21320
16  20 13.58 0.19430
17  20 14.67 0.17700
18  21 15.68 0.16130
19  22 16.65 0.14690
20  25 17.61 0.13390
21  25 18.53 0.12200
22  27 19.40 0.11120
23  27 20.20 0.10130
24  28 20.95 0.09229
25  29 21.66 0.08409
26  30 22.31 0.07662
27  31 22.93 0.06981
28  34 23.53 0.06361
29  35 24.11 0.05796
30  36 24.64 0.05281
31  39 25.16 0.04812
32  39 25.64 0.04384
33  41 26.09 0.03995
34  45 26.52 0.03640
35  45 26.92 0.03317
36  46 27.29 0.03022
37  49 27.64 0.02754
38  53 27.98 0.02509
39  53 28.31 0.02286
40  56 28.62 0.02083
41  60 28.90 0.01898
42  59 29.17 0.01729
43  59 29.42 0.01576
44  60 29.64 0.01436
45  61 29.85 0.01308
46  63 30.04 0.01192
47  64 30.22 0.01086
48  65 30.39 0.00990
49  65 30.55 0.00902
50  66 30.69 0.00822
51  67 30.82 0.00749
52  68 30.94 0.00682
53  67 31.05 0.00622
54  68 31.16 0.00566
55  70 31.25 0.00516
56  70 31.33 0.00470
57  72 31.41 0.00428
58  72 31.49 0.00390
59  71 31.55 0.00356
60  72 31.61 0.00324
61  72 31.67 0.00295
62  72 31.71 0.00269
63  73 31.76 0.00245
64  73 31.79 0.00223
65  73 31.83 0.00203
66  72 31.86 0.00185
67  73 31.88 0.00169
68  75 31.91 0.00154
69  76 31.94 0.00140
70  76 31.96 0.00128
71  77 31.99 0.00116
72  76 32.00 0.00106
73  77 32.02 0.00097
74  77 32.03 0.00088
75  78 32.05 0.00080
76  79 32.06 0.00073
77  80 32.08 0.00067
78  81 32.09 0.00061
79  81 32.10 0.00055
80  81 32.12 0.00050
81  81 32.13 0.00046
82  81 32.14 0.00042
83  81 32.15 0.00038
84  81 32.16 0.00035
85  82 32.17 0.00032
86  82 32.18 0.00029
87  82 32.18 0.00026
88  82 32.19 0.00024
89  82 32.20 0.00022
90  82 32.20 0.00020
91  82 32.21 0.00018
92  82 32.21 0.00017
93  81 32.22 0.00015
94  82 32.22 0.00014
95  82 32.22 0.00012
96  82 32.23 0.00011
97  83 32.23 0.00010
98  83 32.23 0.00009
99  83 32.23 0.00009
100 83 32.24 0.00008
#library('modelr')

pred <- predict(final_glmnet_fit, testing(splits))
prob <- predict(final_glmnet_fit, testing(splits), 'prob' )
test_scored <- testing(splits) %>% cbind(pred, prob)
library('yardstick')

test_scored %>%
  conf_mat(Diabetes, .pred_class)
          Truth
Prediction   No  Yes
       No  2257  136
       Yes   40   32
test_scored %>%
  conf_mat(Diabetes, .pred_class) %>%
  summary() %>%
  ggplot(aes(y=.metric, x=.estimate, fill=.metric)) +
  geom_bar(stat="identity")

test_scored %>%
  roc_auc(Diabetes, .pred_Yes, event_level = 'second')
# A tibble: 1 × 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 roc_auc binary         0.869
test_scored %>%
  roc_curve(Diabetes, .pred_Yes, event_level = 'second') %>%
  autoplot() 

test_scored %>%
  pr_auc(Diabetes, .pred_Yes, event_level = 'second')
# A tibble: 1 × 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 pr_auc  binary         0.365
test_scored %>%
  pr_curve(Diabetes, .pred_Yes, event_level = 'second') %>%
  autoplot()