Modéliser avec tidymodels en R
David Svancer
Data Scientist
Carte thermique avec autoplot()
autoplot()type sur 'heatmap'
conf_mat(leads_results, truth = purchased, estimate = .pred_class) %>%autoplot(type = 'heatmap')

Mosaïque avec autoplot()
type sur 'mosaic'
conf_mat(leads_results,
truth = purchased,
estimate = .pred_class) %>%
autoplot(type = 'mosaic')

Mosaïque avec autoplot()
type sur 'mosaic'conf_mat(leads_results,
truth = purchased,
estimate = .pred_class) %>%
autoplot(type = 'mosaic')

Le seuil de probabilité par défaut en classification binaire est 0,5
leads_results
.pred_yes est supérieur ou égal à 0,5, alors .pred_class est défini sur 'yes' par la fonction predict() de tidymodelsleads_results
# A tibble: 332 x 4
purchased .pred_class .pred_yes .pred_no
<fct> <fct> <dbl> <dbl>
1 no no 0.134 0.866
2 yes yes 0.729 0.271
3 no no 0.133 0.867
4 no no 0.0916 0.908
5 yes yes 0.598 0.402
6 no no 0.128 0.872
7 yes no 0.112 0.888
8 no no 0.169 0.831
9 no no 0.158 0.842
10 yes yes 0.520 0.480
# ... with 322 more rows
Comment un modèle de classification se comporte-t-il selon différents seuils ?
.pred_yes des résultats de test
| seuil | spécificité | sensibilité |
|---|---|---|
| 0 | 0 | 1 |
| 0,11 | 0,01 | 0,98 |
| 0,15 | 0,05 | 0,97 |
| ... | ... | ... |
| 0,84 | 0,89 | 0,08 |
| 0,87 | 0,94 | 0,02 |
| 0,91 | 0,99 | 0 |
| 1 | 1 | 0 |
Courbe ROC (receiver operating characteristic)
Courbe ROC (receiver operating characteristic)

Performance optimale au point (0, 1)
Performance optimale au point (0, 1)
Faible performance

La surface sous la courbe ROC (ROC AUC) résume en un seul nombre l'information de la courbe ROC d'un modèle de classification
Interprétation utile comme note de performance

La fonction roc_curve()
truth avec les catégories réelles de l'issue.pred_yes dans le tibble leads_results
.pred_yesleads_results %>%
roc_curve(truth = purchased, .pred_yes)
# A tibble: 331 x 3
.threshold specificity sensitivity
<dbl> <dbl> <dbl>
1 -Inf 0 1
2 0.0871 0 1
3 0.0888 0.00472 1
4 0.0893 0.00943 1
5 0.0896 0.0142 1
6 0.0902 0.0142 0.992
7 0.0916 0.0142 0.983
8 0.0944 0.0189 0.983
# ... with 323 more rows
Passer le résultat de roc_curve() à autoplot() renvoie un tracé de courbe ROC
leads_results %>%
roc_curve(truth = purchased, .pred_yes) %>%
autoplot()

La fonction roc_auc() de yardstick calcule la ROC AUC
truthroc_auc(leads_results,
truth = purchased,
.pred_yes)
# A tibble: 1 x 3
.metric .estimator .estimate
<chr> <chr> <dbl>
1 roc_auc binary 0.763
Modéliser avec tidymodels en R