Кросс-валидация
Кросс-валидация — эффективный способ избежать переобучения, как вы уже могли убедиться. В этом упражнении вы вычислите точность модели с помощью кросс-валидации.
Всё необходимое уже готово: набор данных defaultData и модель загружены. Функцию точности вы найдёте в первых строках кода — это ваша функция потерь. Оставьте её как есть и используйте при вызове cv.glm() ниже. Попробуйте!
Это упражнение является частью курса
Машинное обучение для маркетинговой аналитики на R
Инструкции к упражнению
Выполните 6-блочную кросс-валидацию и вычислите точность для модели
logitModelNew. Используйте функциюcv.glm()из пакетаboot. Точность по результатам кросс-валидации хранится в первом элементе поляdeltaвозвращаемого объекта.Сравните точность, полученную при кросс-валидации, с точностью при обучении на всей выборке. Напомним, она составляла
0.7922901.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
library(boot)
# Accuracy function
costAcc <- function(r, pi = 0) {
cm <- confusion.matrix(r, pi, threshold = 0.3)
acc <- sum(diag(cm)) / sum(cm)
return(acc)
}
# Cross validated accuracy for logitModelNew
set.seed(534381)
cv.glm(___, ___, cost = ___, K = ___)$delta[1]