Więcej miar modelu

Uczenie maszynowe z modelami drzewiastymi w R

Sandro Raabe

Data Scientist

Ograniczenia dokładności

 

  • „Naiwny" model zawsze przewidujący no może mieć 98% dokładności

$\rightarrow$ Możliwe w niezbalansowanym zbiorze danych z 98% próbek negatywnych

Uczenie maszynowe z modelami drzewiastymi w R

Czułość (ang. sensitivity, TPR)

  • Udział poprawnie sklasyfikowanych wyników pozytywnych

macierz pomyłek — czułość

Uczenie maszynowe z modelami drzewiastymi w R

Swoistość (ang. specificity, TNR)

  • Udział poprawnie sklasyfikowanych wyników negatywnych

macierz pomyłek — swoistość

Uczenie maszynowe z modelami drzewiastymi w R

tabela z różnymi progami

Uczenie maszynowe z modelami drzewiastymi w R

Krzywa ROC (Receiver Operating Characteristic)

  • Wizualizuje działanie modelu klasyfikacji dla wszystkich możliwych progów

wykres krzywej ROC

Uczenie maszynowe z modelami drzewiastymi w R

Krzywa ROC i AUC

różne krzywe ROC

Uczenie maszynowe z modelami drzewiastymi w R

Pole pod krzywą ROC

wykres AUC

  • AUC = 0,5
  • Wyniki nie lepsze niż losowe

 

  • AUC = 1
  • Wszystkie przykłady sklasyfikowane poprawnie dla każdego progu $\rightarrow$ model idealny

 

  • AUC = 0
  • Każdy przykład sklasyfikowany błędnie
Uczenie maszynowe z modelami drzewiastymi w R

yardstick — czułość: sens()

predictions
# A tibble: 153 x 2
.pred_class   true_class
      <fct>        <fct>     
 1      yes           no        
 2       no           no        
 3       no          yes       
 4      yes          yes
# Calculate single-threshold sensitivity
sens(predictions, 
     estimate = .pred_class, 
     truth = true_class)
# A tibble: 1 x 2
  .metric        .estimate
  <chr>              <dbl>
1 sensitivity        0.872
  • Podobne argumenty jak w accuracy() i conf_mat()
Uczenie maszynowe z modelami drzewiastymi w R

yardstick ROC: roc_curve()

# Predict probabilities on test set
predictions <- predict(model,
                       data_test,

type = "prob") %>%
bind_cols(data_test)
# A tibble: 9,116 x 13
   .pred_yes still_customer age gender    ...
       <dbl> <fct>         <int> <fct>    ...
 1    0.0557 no               45 M        ...
 2    0.0625 no               49 F        ...
 3    0.330  no               51 M        ...
 4    ...
 ...
# Calculate the ROC curve for all thresholds
roc <- roc_curve(predictions,

estimate = .pred_yes,
truth = still_customer)
# Plot the ROC curve autoplot(roc)

krzywa roc

Uczenie maszynowe z modelami drzewiastymi w R

yardstick AUC: roc_auc()

  • Te same argumenty: dane, kolumna predykcji, kolumna prawdy
# Calculate area under curve
roc_auc(predictions, 
        estimate = .pred_yes, 
        truth = still_customer)
# A tibble: 1 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 roc_auc binary         0.872
Uczenie maszynowe z modelami drzewiastymi w R

Czas na pomiar!

Uczenie maszynowe z modelami drzewiastymi w R

Preparing Video For Download...