Vizualizarea performanței modelului

Modelare cu tidymodels în R

David Svancer

Data Scientist

Reprezentarea grafică a matricei de confuzie

Heatmap cu autoplot()

  • Transmiteți obiectul matricei de confuzie în autoplot()
  • Setați type la 'heatmap'
  • Vizualizați frecvențele predominante

 

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

autoplot(type = 'heatmap')

Heatmap al matricei de confuzie

Modelare cu tidymodels în R

Grafic mozaic

Mozaic cu autoplot()

  • Setați type la 'mosaic'
  • Fiecare bară verticală reprezintă 100% din valoarea reală a rezultatelor din coloană
  • Afișează vizual
    • sensibilitatea

 

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

Bara de sensibilitate în graficul mozaic al matricei de confuzie

Modelare cu tidymodels în R

Grafic mozaic

Mozaic cu autoplot()

  • Setați type la 'mosaic'
  • Fiecare bară verticală reprezintă 100% din valoarea reală a rezultatelor din coloană
  • Afișează vizual
    • sensibilitatea
    • specificitatea
conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>% 
  autoplot(type = 'mosaic')

Bara de specificitate în graficul mozaic al matricei de confuzie

Modelare cu tidymodels în R

Praguri de probabilitate

Pragul de probabilitate implicit în clasificarea binară este 0,5

  • Dacă probabilitatea estimată a clasei pozitive este mai mare sau egală cu 0,5, se prezice clasa pozitivă

 

leads_results

  • Dacă .pred_yes este ≥ 0,5, atunci .pred_class este setat la 'yes' de funcția predict() din 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
Modelare cu tidymodels în R

Explorarea performanței pe praguri

Cum performează un model de clasificare pe o gamă de praguri?

  • Praguri de probabilitate unice din coloana .pred_yes a rezultatelor din setul de test
    • Calculați specificitatea și sensibilitatea pentru fiecare

 

prag specificitate sensibilitate
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
Modelare cu tidymodels în R

Vizualizarea performanței pe praguri

Curba caracteristicii operatorului receptor (ROC)

  • Utilizată pentru vizualizarea performanței pe praguri de probabilitate

 

  • Sensibilitate vs. (1 - specificitate) pentru praguri unice din rezultatele setului de test

Sensibilitate față de 1 minus specificitate

Modelare cu tidymodels în R

Vizualizarea performanței pe praguri

Curba caracteristicii operatorului receptor (ROC)

  • Utilizată pentru vizualizarea performanței pe praguri de probabilitate

 

  • Sensibilitate vs. (1 - specificitate) pentru praguri unice din rezultatele setului de test
    • Proporția corectă dintre pozitivii reali vs. proporția incorectă dintre negativii reali

Curbă ROC

Modelare cu tidymodels în R

Curbe ROC

Performanța optimă se află în punctul (0, 1)

  • Ideal, un model de clasificare generează puncte aproape de marginea superioară stângă pentru toate pragurile

Curbă ROC ideală

Modelare cu tidymodels în R

Curbe ROC

Performanța optimă se află în punctul (0, 1)

  • Ideal, un model de clasificare generează puncte aproape de marginea superioară stângă pentru toate pragurile

 

Performanță slabă

  • Sensibilitatea și (1 - specificitatea) sunt egale pentru toate pragurile
    • Corespunde unui model de clasificare care prezice rezultatele pe baza aruncării aleatoare a unei monede echilibrate

Curbă ROC cu performanță slabă

Modelare cu tidymodels în R

Rezumarea curbei ROC

Aria de sub curba ROC (ROC AUC) rezumă informațiile curbei ROC ale unui model de clasificare într-un singur număr

Interpretare utilă ca notă de clasificare a performanței

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

Aria de sub curba ROC

Modelare cu tidymodels în R

Calcularea performanței pe praguri

Funcția roc_curve()

  • Preia un tibble de rezultate ca prim argument
  • Coloana truth cu categoriile reale ale rezultatelor
  • Coloana cu probabilitățile estimate pentru clasa pozitivă
    • .pred_yes în tibble-ul leads_results

 

  • Returnează un tibble cu specificitatea și sensibilitatea pentru toate pragurile unice din .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
Modelare cu tidymodels în R

Reprezentarea grafică a curbei ROC

Transmiterea rezultatelor funcției roc_curve() către autoplot() returnează un grafic al curbei ROC

 

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

Modelare cu tidymodels în R

Calcularea ROC AUC

Funcția roc_auc() din yardstick calculează ROC AUC

  • Tibble cu rezultatele modelului
  • Coloana truth
  • Coloana cu probabilitățile estimate pentru clasa pozitivă
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
Modelare cu tidymodels în R

Să exersăm!

Modelare cu tidymodels în R

Preparing Video For Download...