Оценка качества модели на тестовой выборке
Теперь вы знаете, что оценивать качество модели на тестовой выборке куда важнее, чем на обучающей. В этом упражнении вы построите меру точности на тестовых данных.
Прежде чем это сделать, потребуется выполнить несколько подготовительных шагов. Снова используйте defaultData. Модель logitModelNew уже загружена в вашем окружении.
Помните: при полноценном анализе необходимо сравнивать разные варианты моделей — в том числе (и прежде всего) на тестовых данных.
Точность на обучающей выборке при оптимальном пороге 0,3 составляет 0.7922901.
Проверьте, наблюдается ли переобучение.
Это упражнение является частью курса
Машинное обучение для маркетинговой аналитики на R
Инструкции к упражнению
Сначала случайным образом разделите набор данных на обучающую и тестовую выборки. Обучающая выборка должна содержать 2/3 всех данных.
Затем обучите модель и присвойте ей название
logitTrainNew. Используйте заданную формулу.Сделайте прогнозы на тестовой выборке и вычислите точность на тестовых данных с помощью матрицы ошибок. Обратите внимание, что пакет
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