Перевірка на відкладеній вибірці та крос‑валідація

Machine Learning для маркетингової аналітики в R

Verena Pflieger

Data Scientist at INWT Statistics

Відкладена перевірка: train і test

1) Розбийте набір даних на тренувальні та тестові

# Генеруємо випадковий індекс для train і test
# set.seed забезпечує відтворюваність випадкових компонентів
set.seed(534381)

churnData$isTrain <- rbinom(nrow(churnData), 1, 0.66)
train <- subset(churnData, churnData$isTrain == 1)
test <- subset(churnData, churnData$isTrain == 0)
Machine Learning для маркетингової аналітики в R

Відкладена перевірка: побудова моделі

2) Побудуйте модель на тренувальних даних

# Моделювання logitTrainNew
logitTrainNew <- glm( returnCustomer ~ title + newsletter + 
                     websiteDesign + paymentMethod + couponDiscount +
                     purchaseValue + throughAffiliate + 
                     shippingFees + dvd + blueray + vinyl + 
                     videogameDownload + prodOthers + prodRemitted,
                     family = binomial, data = train)

# Прогноз на відкладеній вибірці для logitTrainNew
test$predNew <- predict(logitTrainNew, type = "response",
                        newdata = test)
Machine Learning для маркетингової аналітики в R

Точність на відкладеній вибірці

# Обчислюємо матрицю невідповідностей
confMatrixNew <- confusion.matrix(test$returnCustomer, test$predNew, 
                 threshold = 0.3)
confMatrixNew

# Обчислюємо точність 
accuracyNew <- sum(diag(confMatrixNew)) / sum(confMatrixNew)
accuracyNew
    obs
pred     0    1
   0 11939 2449
   1   716  350

0.7951987
Machine Learning для маркетингової аналітики в R

Крос‑валідація: налаштування

Machine Learning для маркетингової аналітики в R

Крос‑валідація: точність

Обчислення точності з крос‑валідацією

library(boot)
# Функція точності з threshold = 0.3
Acc03 <- function(r, pi = 0) {
  cm <- confusion.matrix(r, pi, threshold = 0.3)
  acc <- sum(diag(cm)) / sum(cm)
  return(acc)}
# Точність
set.seed(534381)
cv.glm(churnData, logitModelNew, cost = Acc03, K = 6)$delta
0.7943894
Machine Learning для маркетингової аналітики в R
Висновки з Logistic Regression
Ви дізналися... як прогнозувати відтік клієнтів інтернет‑магазину
як використовувати бінарну логістичну регресію для обчислення ймовірностей
що вибір порога має вирішальне значення
Висновки з моделі
Ви дізналися... що клієнти, які підписалися на розсилку, частіше повертаються
що клієнти, які використовують купон, рідше повертаються
що клієнти без плати за доставку частіше повертаються
тощо...
Machine Learning для маркетингової аналітики в R

Остання вправа!

Machine Learning для маркетингової аналітики в R

Preparing Video For Download...