Aan de slagGa gratis aan de slag

Out-of-sample model fit beoordelen

Je weet nu dat het zinvoller is om naar de out-of-sample model fit te kijken dan naar de in-sample fit. In deze oefening wil je daarom een out-of-sample nauwkeurigheidsmaat bepalen.

Eerst moet je echter een paar voorbereidende stappen doen. Neem defaultData er weer bij. logitModelNew is al in je omgeving geladen.

Onthoud dat je voor een volledige analyse altijd verschillende modelkandidaten moet vergelijken, ook (en juist) met out-of-sample data.

De in-sample nauwkeurigheid — met de optimale drempel van 0,3 — is 0.7922901. Zorg dat je begrijpt of er sprake is van overfitting.

Deze oefening maakt deel uit van de cursus

Machine Learning for Marketing Analytics in R

Cursus bekijken

Oefeninstructies

  • Split eerst de gegevensset willekeurig in een trainings- en testset. De trainingsset moet 2/3 van alle data bevatten.

  • Run vervolgens snel het model en noem het logitTrainNew. Gebruik de gegeven formule.

  • Maak voorspellingen op de testset en bereken daarna de out-of-sample nauwkeurigheid met behulp van een confusion matrix. Let op: SDMTools is niet meer te downloaden via CRAN. Installeer het op je eigen computer via remotes::install_version("SDMTools", "1.1-221.2").

  • Vergelijk de out-of-sample nauwkeurigheid met de in-sample waarde die hierboven is gegeven.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren