Оцінювання якості моделі на позавибіркових даних
Тепер ви знаєте, що доцільніше дивитися на якість моделі на позавибіркових даних, а не на внутрішньовибіркову. У цій вправі вам потрібно отримати міру точності на позавибіркових даних.
Перед цим виконайте кілька підготовчих кроків. Знову візьміть defaultData. Об'єкт logitModelNew уже завантажено у ваше середовище.
Пам'ятайте: для повного аналізу завжди слід порівнювати різні кандидати моделей також (і особливо) на позавибіркових даних.
Внутрішньовибіркова точність — за оптимального порога 0.3 — дорівнює 0.7922901.
Переконайтеся, що ви розумієте, чи є перенавчання.
Ця вправа є частиною курсу
Machine Learning для маркетингової аналітики в R
Інструкції до вправи
Спочатку випадково розбийте набір даних на тренувальну та тестову вибірки. Тренувальна вибірка має містити 2/3 усіх даних.
Потім швидко запустіть модель і назвіть її
logitTrainNew. Використайте надану формулу.Зробіть передбачення для тестової вибірки, а потім обчисліть позавибіркову точність за допомогою матриці невідповідностей (confusion matrix). Зауважте, що
SDMToolsбільше не можна завантажити з CRAN. На своєму комп'ютері встановіть його черезremotes::install_version("SDMTools", "1.1-221.2").Порівняйте позавибіркову точність із внутрішньовибірковим значенням, наведеним вище.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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