Vizualizace výkonu modelu

Modeling with tidymodels in R

David Svancer

Data Scientist

Vykreslení matice záměn

Heatmapa pomocí autoplot()

  • Předejte objekt matice záměn do autoplot()
  • Nastavte type na 'heatmap'
  • Vizualizujte nejčastější hodnoty

 

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

autoplot(type = 'heatmap')

Heatmapa matice záměn

Modeling with tidymodels in R

Mozaikový graf

Mozaikový graf pomocí autoplot()

  • Nastavte type na 'mosaic'
  • Každý svislý sloupec představuje 100 % skutečných hodnot daného výsledku
  • Vizuálně zobrazuje
    • sensitivitu

 

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

Mozaikový graf matice záměn – sloupec sensitivity

Modeling with tidymodels in R

Mozaikový graf

Mozaikový graf pomocí autoplot()

  • Nastavte type na 'mosaic'
  • Každý svislý sloupec představuje 100 % skutečných hodnot daného výsledku
  • Vizuálně zobrazuje
    • sensitivitu
    • specificitu
conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>% 
  autoplot(type = 'mosaic')

Mozaikový graf matice záměn – sloupec specificity

Modeling with tidymodels in R

Prahy pravděpodobnosti

Výchozí práh pravděpodobnosti v binární klasifikaci je 0,5

  • Pokud je odhadovaná pravděpodobnost pozitivní třídy větší nebo rovna 0,5, je predikována pozitivní třída

 

leads_results

  • Pokud je .pred_yes větší nebo rovno 0,5, funkce predict() v tidymodels nastaví .pred_class na 'yes'
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
Modeling with tidymodels in R

Zkoumání výkonu napříč prahy

Jak si klasifikační model vede napříč různými prahy?

  • Jedinečné prahy pravděpodobnosti ve sloupci .pred_yes výsledků testovací sady
    • Pro každý se vypočítá specificita a sensitivita

 

práh specificita sensitivita
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
Modeling with tidymodels in R

Vizualizace výkonu napříč prahy

Křivka ROC (Receiver Operating Characteristic)

  • Slouží k vizualizaci výkonu napříč prahy pravděpodobnosti

 

  • Sensitivita vs. (1 − specificita) pro všechny jedinečné prahy ve výsledcích testovací sady

Sensitivita versus 1 minus specificita

Modeling with tidymodels in R

Vizualizace výkonu napříč prahy

Křivka ROC (Receiver Operating Characteristic)

  • Slouží k vizualizaci výkonu napříč prahy pravděpodobnosti

 

  • Sensitivita vs. (1 − specificita) pro všechny jedinečné prahy ve výsledcích testovací sady
    • Podíl správných předpovědí u skutečných pozitivních vs. podíl nesprávných u skutečných negativních

Křivka ROC

Modeling with tidymodels in R

Křivky ROC

Optimální výkon je v bodě (0, 1)

  • Ideálně model produkuje body blízko levého horního okraje napříč všemi prahy

Ideální křivka ROC

Modeling with tidymodels in R

Křivky ROC

Optimální výkon je v bodě (0, 1)

  • Ideálně model produkuje body blízko levého horního okraje napříč všemi prahy

 

Slabý výkon

  • Sensitivita a (1 − specificita) jsou si napříč všemi prahy rovny
    • Odpovídá klasifikačnímu modelu, který předpovídá výsledky náhodně – jako hod spravedlivou mincí

Křivka ROC se slabým výkonem

Modeling with tidymodels in R

Shrnutí křivky ROC

Plocha pod křivkou ROC (ROC AUC) shrnuje informace o křivce ROC do jednoho čísla

Praktická interpretace jako školní známka výkonu klasifikace

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

Plocha pod křivkou ROC

Modeling with tidymodels in R

Výpočet výkonu napříč prahy

Funkce roc_curve()

  • Jako první argument přijímá tibble s výsledky
  • Sloupec truth se skutečnými kategoriemi výsledků
  • Sloupec s odhadovanými pravděpodobnostmi pro pozitivní třídu
    • .pred_yes v tibble leads_results

 

  • Vrací tibble se specificitou a sensitivitou pro všechny jedinečné prahy v .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
Modeling with tidymodels in R

Vykreslení křivky ROC

Předání výsledků roc_curve() do funkce autoplot() vytvoří graf křivky ROC

 

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

Modeling with tidymodels in R

Výpočet ROC AUC

Funkce roc_auc() z balíčku yardstick vypočítá ROC AUC

  • Tibble s výsledky modelu
  • Sloupec truth
  • Sloupec s odhadovanými pravděpodobnostmi pro pozitivní třídu
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
Modeling with tidymodels in R

Pojďme si procvičit!

Modeling with tidymodels in R

Preparing Video For Download...