Kom igångKom igång gratis

Utvärdering av modellpassning utanför urvalet

Nu vet du att det är mer meningsfullt att titta på modellpassningen utanför urvalet än på passningen inom urvalet. I den här övningen ska du därför ta fram ett noggrannhetsmått utanför urvalet.

Först behöver du dock göra några förberedande steg. Använd defaultData igen. logitModelNew är redan inläst i din miljö.

Observera att du vid en fullständig analys alltid skulle behöva jämföra olika modellkandidater även – och framför allt – med data utanför urvalet.

Noggrannheten inom urvalet – med det optimala tröskelvärdet 0,3 – är 0.7922901. Se till att du förstår om det förekommer överanpassning.

Den här övningen är en del av kursen

Maskininlärning för marknadsanalys i R

Visa kurs

Övningsinstruktioner

  • Dela först upp datamängden slumpmässigt i ett tränings- och ett testset. Träningssettet ska innehålla 2/3 av all data.

  • Kör sedan modellen och kalla den logitTrainNew. Använd den angivna formeln.

  • Gör prediktioner på testsettet och beräkna sedan noggrannheten utanför urvalet med hjälp av en konfusionsmatris. Observera att SDMTools inte längre kan laddas ned från CRAN. Installera det på din egen dator via remotes::install_version("SDMTools", "1.1-221.2") i stället.

  • Jämför noggrannheten utanför urvalet med värdet inom urvalet som anges ovan.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
Redigera och kör kod