Weitere Modellmaße

Maschinelles Lernen mit baumbasierten Modellen in R

Sandro Raabe

Data Scientist

Grenzen der Accuracy

 

  • „Naives" Modell, das immer no vorhersagt, kann 98 % Genauigkeit haben

$\rightarrow$ Möglich bei unausgewogenem Datensatz mit 98 % negativen Fällen

Maschinelles Lernen mit baumbasierten Modellen in R

Sensitivität oder True-Positive-Rate

  • Anteil aller positiven Ergebnisse, die korrekt klassifiziert wurden

Konfusionsmatrix zeigt Sensitivität

Maschinelles Lernen mit baumbasierten Modellen in R

Spezifität oder True-Negative-Rate

  • Anteil aller negativen Ergebnisse, die korrekt klassifiziert wurden

Konfusionsmatrix zeigt True-Negative-Rate

Maschinelles Lernen mit baumbasierten Modellen in R

Tabelle mit verschiedenen Schwellwerten

Maschinelles Lernen mit baumbasierten Modellen in R

ROC (Receiver Operating Characteristic)-Kurve

  • Visualisiert die Leistung eines Klassifikationsmodells über alle Schwellwerte

ROC-Kurve

Maschinelles Lernen mit baumbasierten Modellen in R

ROC-Kurve und AUC

verschiedene ROC-Kurven

Maschinelles Lernen mit baumbasierten Modellen in R

Fläche unter der ROC-Kurve

AUC-Diagramm

  • AUC = 0,5
  • Leistung nicht besser als Zufall

 

  • AUC = 1
  • Alle Beispiele bei jedem Schwellwert korrekt klassifiziert $\rightarrow$ perfektes Modell

 

  • AUC = 0
  • Jedes Beispiel falsch klassifiziert
Maschinelles Lernen mit baumbasierten Modellen in R

yardstick Sensitivität: 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
# Sensitivität für einen Schwellwert berechnen
sens(predictions, 
     estimate = .pred_class, 
     truth = true_class)
# A tibble: 1 x 2
  .metric        .estimate
  <chr>              <dbl>
1 sensitivity        0.872
  • Ähnliche Argumente wie bei accuracy() und conf_mat()
Maschinelles Lernen mit baumbasierten Modellen in R

yardstick ROC: roc_curve()

# Wahrscheinlichkeiten auf dem Testset vorhersagen
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    ...
 ...
# ROC-Kurve für alle Schwellwerte berechnen
roc <- roc_curve(predictions,

estimate = .pred_yes,
truth = still_customer)
# ROC-Kurve plotten autoplot(roc)

ROC-Kurve

Maschinelles Lernen mit baumbasierten Modellen in R

yardstick AUC: roc_auc()

  • Gleiche Argumente: Daten, Vorhersagespalte, Wahrheits-Spalte
# Fläche unter der Kurve berechnen
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
Maschinelles Lernen mit baumbasierten Modellen in R

Lass uns messen!

Maschinelles Lernen mit baumbasierten Modellen in R

Preparing Video For Download...