LoslegenKostenlos loslegen

Beurteilung der Modellgüte out-of-sample

Du weißt jetzt, dass es sinnvoller ist, die out-of-sample-Modellgüte anzuschauen als die in-sample-Güte. In dieser Übung möchtest du daher ein Out-of-Sample-Genauigkeitsmaß bestimmen.

Zuvor brauchst du jedoch ein paar Vorbereitungsschritte. Nimm wieder defaultData. logitModelNew ist bereits in deiner Umgebung geladen.

Beachte, dass du für eine vollständige Analyse immer verschiedene Modellkandidaten vergleichen solltest – auch (und insbesondere) anhand von Out-of-Sample-Daten.

Die In-Sample-Genauigkeit – bei einem optimalen Schwellenwert von 0.3 – beträgt 0.7922901. Stelle sicher, dass du verstehst, ob Overfitting vorliegt.

Diese Übung ist Teil des Kurses

Machine Learning für Marketing-Analytics in R

Kurs anzeigen

Anleitung zur Übung

  • Teile zunächst den Datensatz zufällig in Trainings- und Testmenge. Die Trainingsmenge soll 2/3 der Gesamtdaten enthalten.

  • Fitte dann kurz das Modell und nenne es logitTrainNew. Verwende die vorgegebene Formel.

  • Erstelle Vorhersagen für das Test-Set und berechne anschließend die Out-of-Sample-Genauigkeit mithilfe einer Konfusionsmatrix. Beachte, dass SDMTools nicht mehr über CRAN heruntergeladen werden kann. Installiere es auf deinem eigenen Rechner stattdessen via remotes::install_version("SDMTools", "1.1-221.2").

  • Vergleiche die Out-of-Sample-Genauigkeit mit dem oben angegebenen In-Sample-Wert.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Split data in train and test set
set.seed(534381) 
defaultData$isTrain <- rbinom(nrow(defaultData), 1, 0.66)
train <- subset(defaultData, ___ == 1)
test <- subset(defaultData, ___  == 0)

logitTrainNew <- glm(formulaLogit, family = binomial, data = ___) # Modeling
test$predNew <- predict(logitTrainNew, type = "response", newdata = ___) # Predictions

# Out-of-sample confusion matrix and accuracy
confMatrixModelNew <- confusion.matrix(___, ___, threshold = 0.3) 
sum(diag(confMatrixModelNew)) / sum(confMatrixModelNew) # Compare this value to the in-sample accuracy
Code bearbeiten und ausführen