Modélisation avec tidymodels en R
David Svancer
Data Scientist
Créer des ensembles d'entraînement et de test est la première étape du processus de modélisation
Inconvénient
Technique de rééchantillonnage pour explorer la performance d'un modèle

Technique de rééchantillonnage pour explorer la performance d'un modèle

Effectuer une validation croisée à 5 plis

Effectuer une validation croisée à 5 plis

Effectuer une validation croisée à 5 plis

Effectuer une validation croisée à 5 plis
Au total, cinq estimations de la performance du modèle

La fonction vfold_cv()
vstrataset.seed() avant vfold_cv() pour la reproductibilitésplitsset.seed(214) leads_folds <- vfold_cv(leads_training,v = 10,strata = purchased)leads_folds
# 10-fold cross-validation using stratification
# A tibble: 10 x 2
splits id
<list> <chr>
1 <split [896/100]> Fold01
2 <split [896/100]> Fold02
3 <split [896/100]> Fold03
. ................ ......
9 <split [897/99]> Fold09
10 <split [897/99]> Fold10
La fonction fit_resamples()
parsnip ou un objet workflowresamplesmetrics
Chaque mesure est estimée 10 fois
meanleads_rs_fit <- leads_wkfl %>%fit_resamples(resamples = leads_folds,metrics = leads_metrics)leads_rs_fit %>% collect_metrics()
# A tibble: 3 x 5
.metric .estimator mean n std_err
<chr> <chr> <dbl> <int> <dbl>
1 roc_auc binary 0.823 10 0.0147
2 sens binary 0.786 10 0.0203
3 spec binary 0.855 10 0.0159
La fonction collect_metrics()
summarize = FALSE, vous obtenez toutes les estimations pour chaque pli de validation croisée.metric identifie la mesure.estimate donne la valeur estimée pour chaque plirs_metrics <- leads_rs_fit %>% collect_metrics(summarize = FALSE)rs_metrics
# A tibble: 30 x 4
id .metric .estimator .estimate
<chr> <chr> <chr> <dbl>
1 Fold01 sens binary 0.861
2 Fold01 spec binary 0.891
3 Fold01 roc_auc binary 0.885
4 Fold02 sens binary 0.778
5 Fold02 spec binary 0.969
6 Fold02 roc_auc binary 0.885
# ... with 24 more rows
La fonction collect_metrics() retourne un tibble
dplyrrs_metrics.metricsummarize()rs_metrics %>%group_by(.metric) %>%summarize(min = min(.estimate), median = median(.estimate), max = max(.estimate), mean = mean(.estimate), sd = sd(.estimate))
# A tibble: 3 x 6
.metric min median max mean sd
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 roc_auc 0.758 0.806 0.885 0.823 0.0466
2 sens 0.667 0.792 0.861 0.786 0.0642
3 spec 0.810 0.843 0.969 0.855 0.0502
Les modèles entraînés avec fit_resamples() ne peuvent pas produire de prédictions sur de nouvelles données
predict() n'accepte pas les objets de rééchantillonnageObjectif de fit_resample()
predict(leads_rs_fit,
new_data = leads_test)
Error in UseMethod("predict") :
no applicable method for 'predict' applied to
an object of class
"c('resample_results',
'tune_results',
'tbl_df',
'tbl', 'data.frame')"
Modélisation avec tidymodels en R