Valutare l’aderenza del modello out-of-sample
Ora sai che ha più senso esaminare l’aderenza del modello out-of-sample rispetto a quella in-sample. In questo esercizio, dunque, vorrai definire una misura di accuratezza out-of-sample.
Prima, però, dovrai svolgere alcuni passaggi preparatori. Riprendi defaultData. logitModelNew è già caricato nel tuo ambiente.
Tieni presente che, per un’analisi completa, dovresti sempre confrontare diversi modelli candidati anche (e soprattutto) usando dati out-of-sample.
L’accuratezza in-sample — usando la soglia ottimale di 0.3 — è 0.7922901.
Assicurati di capire se c’è overfitting.
Questo esercizio fa parte del corso
Machine Learning per il Marketing Analytics in R
Istruzioni dell'esercizio
Per prima cosa, suddividi casualmente l’insieme di dati in training e test set. Il training set deve contenere 2/3 dei dati complessivi.
Poi, esegui rapidamente il modello e chiamalo
logitTrainNew. Usa la formula fornita.Fai le previsioni sul test set e quindi calcola l’accuratezza out-of-sample con l’aiuto di una matrice di confusione. Nota che
SDMToolsnon è più scaricabile da CRAN. Sul tuo computer personale installalo invece tramiteremotes::install_version("SDMTools", "1.1-221.2").Confronta l’accuratezza out-of-sample con il valore in-sample indicato sopra.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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