Visualizzare le prestazioni del modello

Modellazione con tidymodels in R

David Svancer

Data Scientist

Grafico della matrice di confusione

Heatmap con autoplot()

  • Passa l'oggetto matrice di confusione a autoplot()
  • Imposta type su 'heatmap'
  • Visualizza i conteggi più frequenti

 

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

autoplot(type = 'heatmap')

Heatmap della matrice di confusione

Modellazione con tidymodels in R

Grafico mosaico

Mosaico con autoplot()

  • Imposta type su 'mosaic'
  • Ogni barra verticale rappresenta il 100% del valore dell'esito reale in colonna
  • Mostra visivamente
    • sensibilità

 

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

Grafico mosaico della matrice di confusione barra sensibilità

Modellazione con tidymodels in R

Grafico mosaico

Mosaico con autoplot()

  • Imposta type su 'mosaic'
  • Ogni barra verticale rappresenta il 100% del valore dell'esito reale in colonna
  • Mostra visivamente
    • sensibilità
    • specificità
conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>% 
  autoplot(type = 'mosaic')

Grafico mosaico della matrice di confusione barra specificità

Modellazione con tidymodels in R

Soglie di probabilità

La soglia di probabilità predefinita nel binary classification è 0,5

  • Se la probabilità stimata della classe positiva è ≥ 0,5, si predice la classe positiva

 

leads_results

  • Se .pred_yes è ≥ 0,5 allora .pred_class è 'yes' con predict() in 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
Modellazione con tidymodels in R

Esplorare le prestazioni sulle soglie

Come rende un modello di classificazione su diverse soglie?

  • Soglie di probabilità uniche nella colonna .pred_yes dei risultati di test
    • Calcola specificità e sensibilità per ciascuna

 

soglia specificità 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
Modellazione con tidymodels in R

Visualizzare le prestazioni sulle soglie

Curva ROC (Receiver Operating Characteristic)

  • Per visualizzare le prestazioni al variare della soglia

 

  • Sensibilità vs. (1 - specificità) sulle soglie uniche nei risultati del test

Sensibilità rispetto a 1 meno specificità

Modellazione con tidymodels in R

Visualizzare le prestazioni sulle soglie

Curva ROC (Receiver Operating Characteristic)

  • Per visualizzare le prestazioni al variare della soglia

 

  • Sensibilità vs (1 - specificità) sulle soglie uniche nei risultati del test
    • Quota corretta tra i positivi reali vs. quota errata tra i negativi reali

Curva ROC

Modellazione con tidymodels in R

Curve ROC

Le prestazioni ottimali sono nel punto (0, 1)

  • Idealmente, un modello produce punti vicini al bordo in alto a sinistra per tutte le soglie

Curva ROC ideale

Modellazione con tidymodels in R

Curve ROC

Le prestazioni ottimali sono nel punto (0, 1)

  • Idealmente, un modello produce punti vicini al bordo in alto a sinistra per tutte le soglie

 

Prestazioni scarse

  • Sensibilità e (1 - specificità) sono uguali a tutte le soglie
    • Corrisponde a un modello che predice l'esito lanciando una moneta equa a caso

Curva ROC con prestazioni scarse

Modellazione con tidymodels in R

Riassumere la curva ROC

L'area sotto la curva ROC (ROC AUC) riassume la curva ROC in un singolo numero

Utile da leggere come un voto sulle prestazioni di classificazione

  • A - [0.9, 1]
  • B - [0.8, 0.9)
  • C - [0.7, 0.8)
  • D - [0.6, 0.7)
  • F - [0.5, 0.6)

Area sotto la curva ROC

Modellazione con tidymodels in R

Calcolare le prestazioni sulle soglie

La funzione roc_curve()

  • Prende una tibble di risultati come primo argomento
  • Colonna truth con le classi reali
  • Colonna con le probabilità stimate per la classe positiva
    • .pred_yes nella tibble leads_results

 

  • Restituisce una tibble con specificità e sensibilità per tutte le soglie uniche in .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
Modellazione con tidymodels in R

Tracciare la curva ROC

Passare i risultati di roc_curve() a autoplot() restituisce il grafico ROC

 

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

Modellazione con tidymodels in R

Calcolare la ROC AUC

La funzione roc_auc() di yardstick calcola la ROC AUC

  • Tibble dei risultati del modello
  • Colonna truth
  • Colonna con le probabilità stimate per la classe positiva
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
Modellazione con tidymodels in R

Ayo berlatih!

Modellazione con tidymodels in R

Preparing Video For Download...