ÎncepețiÎncepe gratuit

Evaluarea potrivirii modelului pe date noi (out-of-sample)

Acum știi că are mai mult sens să analizezi potrivirea modelului pe date noi (out-of-sample) decât pe datele de antrenament (in-sample). În acest exercițiu, vei calcula o măsură de acuratețe out-of-sample.

Înainte de asta, va trebui să parcurgi câțiva pași pregătitori. Folosește din nou defaultData. logitModelNew este deja încărcat în mediul tău de lucru.

Reține că, pentru o analiză completă, ar trebui să compari întotdeauna mai mulți candidați de model și folosind date out-of-sample.

Acuratețea in-sample – folosind pragul optim de 0,3 – este 0.7922901. Asigură-te că înțelegi dacă există supraajustare (overfitting).

Acest exercițiu face parte din cursul

Machine Learning pentru Analiză de Marketing în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Mai întâi, împarte setul de date aleatoriu în set de antrenament și set de testare. Setul de antrenament trebuie să conțină 2/3 din totalul datelor.

  • Apoi, rulează rapid modelul și numește-l logitTrainNew. Folosește formula dată.

  • Generează predicții pe setul de testare, apoi calculează acuratețea out-of-sample cu ajutorul unei matrice de confuzie. Reține că SDMTools nu mai poate fi descărcat din CRAN. Pe calculatorul personal, instalează-l prin remotes::install_version("SDMTools", "1.1-221.2").

  • Compară acuratețea out-of-sample cu valoarea in-sample menționată mai sus.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
Editează și rulează codul