Visualiser la performance du modèle

Modélisation avec tidymodels en R

David Svancer

Data Scientist

Tracer la matrice de confusion

Carte thermique avec autoplot()

  • Transmettre l'objet de matrice de confusion à autoplot()
  • Définir type à 'heatmap'
  • Visualiser les comptes les plus fréquents

 

conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>%

autoplot(type = 'heatmap')

Carte thermique de la matrice de confusion

Modélisation avec tidymodels en R

Diagramme mosaïque

Mosaïque avec autoplot()

  • Définir type à 'mosaic'
  • Chaque barre verticale représente 100 % de la valeur réelle de la cible dans la colonne
  • Affiche visuellement
    • la sensibilité

 

conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>% 
  autoplot(type = 'mosaic')

Diagramme mosaïque : barre de sensibilité

Modélisation avec tidymodels en R

Diagramme mosaïque

Mosaïque avec autoplot()

  • Définir type à 'mosaic'
  • Chaque barre verticale représente 100 % de la valeur réelle de la cible dans la colonne
  • Affiche visuellement
    • la sensibilité
    • la spécificité
conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>% 
  autoplot(type = 'mosaic')

Diagramme mosaïque : barre de spécificité

Modélisation avec tidymodels en R

Seuils de probabilité

Le seuil de probabilité par défaut en classification binaire est 0,5

  • Si la probabilité estimée de la classe positive est supérieure ou égale à 0,5, la classe positive est prédite

 

leads_results

  • Si .pred_yes est supérieure ou égale à 0,5, alors .pred_class est défini à 'yes' par la fonction predict() de tidymodels
leads_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
Modélisation avec tidymodels en R

Explorer la performance selon les seuils

Comment un modèle de classification se comporte-t-il selon divers seuils ?

  • Seuils de probabilité uniques dans la colonne .pred_yes des résultats du jeu de test
    • Calculer la spécificité et la sensibilité pour chacun

 

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
Modélisation avec tidymodels en R

Visualiser la performance selon les seuils

Courbe ROC (receiver operating characteristic)

  • Sert à visualiser la performance selon les seuils de probabilité

 

  • Sensibilité vs (1 - spécificité) selon les seuils uniques dans les résultats du test

Sensibilité comparée à 1 moins la spécificité

Modélisation avec tidymodels en R

Visualiser la performance selon les seuils

Courbe ROC (receiver operating characteristic)

  • Sert à visualiser la performance selon les seuils de probabilité

 

  • Sensibilité vs (1 - spécificité) selon les seuils uniques dans les résultats du test
    • Proportion correcte parmi les positifs réels vs proportion incorrecte parmi les négatifs réels

Courbe ROC

Modélisation avec tidymodels en R

Courbes ROC

La performance optimale se situe au point (0, 1)

  • Idéalement, un modèle produit, pour tous les seuils, des points près du bord supérieur gauche

Courbe ROC idéale

Modélisation avec tidymodels en R

Courbes ROC

La performance optimale se situe au point (0, 1)

  • Idéalement, un modèle produit, pour tous les seuils, des points près du bord supérieur gauche

 

Faible performance

  • La sensibilité et (1 - spécificité) sont égales pour tous les seuils
    • Correspond à un modèle qui prédit au hasard, comme un lancer de pièce équilibrée

Courbe ROC avec faible performance

Modélisation avec tidymodels en R

Résumer la courbe ROC

L'aire 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

  • A - [0,9, 1]
  • B - [0,8, 0,9)
  • C - [0,7, 0,8)
  • D - [0,6, 0,7)
  • F - [0,5, 0,6)

Aire sous la courbe ROC

Modélisation avec tidymodels en R

Calculer la performance selon les seuils

La fonction roc_curve()

  • Prend un tibble de résultats comme premier argument
  • Colonne truth avec les catégories réelles de l'issue
  • Colonne avec les probabilités estimées pour la classe positive
    • .pred_yes dans le tibble leads_results

 

  • Retourne un tibble avec spécificité et sensibilité pour tous les seuils uniques de .pred_yes
leads_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
Modélisation avec tidymodels en R

Tracer la courbe ROC

Transmettre le résultat de roc_curve() à autoplot() produit un tracé de courbe ROC

 

leads_results %>% 
  roc_curve(truth = purchased, .pred_yes) %>% 
  autoplot()

Modélisation avec tidymodels en R

Calculer la ROC AUC

La fonction roc_auc() de yardstick calcule la ROC AUC

  • Tibble des résultats du modèle
  • Colonne truth
  • Colonne avec les probabilités estimées pour la classe positive
roc_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élisation avec tidymodels en R

Passons à la pratique !

Modélisation avec tidymodels en R

Preparing Video For Download...