Validarea out-of-sample și cross-validarea

Machine Learning pentru Analiză de Marketing în R

Verena Pflieger

Data Scientist at INWT Statistics

Potrivire out-of-sample: date de antrenament și de test

1) Împărțiți setul de date în date de antrenament și de test

# Generating random index for training and test set
# set.seed ensures reproducibility of random components
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 pentru Analiză de Marketing în R

Potrivire out-of-sample: construirea modelului

2) Construiți un model pe baza datelor de antrenament

# Modeling logitTrainNew
logitTrainNew <- glm( returnCustomer ~ title + newsletter + 
                     websiteDesign + paymentMethod + couponDiscount +
                     purchaseValue + throughAffiliate + 
                     shippingFees + dvd + blueray + vinyl + 
                     videogameDownload + prodOthers + prodRemitted,
                     family = binomial, data = train)

# Out-of-sample prediction for logitTrainNew
test$predNew <- predict(logitTrainNew, type = "response",
                        newdata = test)
Machine Learning pentru Analiză de Marketing în R

Acuratețe out-of-sample

# Calculating the confusion matrix
confMatrixNew <- confusion.matrix(test$returnCustomer, test$predNew, 
                 threshold = 0.3)
confMatrixNew

# Calculating the accuracy 
accuracyNew <- sum(diag(confMatrixNew)) / sum(confMatrixNew)
accuracyNew
    obs
pred     0    1
   0 11939 2449
   1   716  350

0.7951987
Machine Learning pentru Analiză de Marketing în R

Cross-validare: configurare

Machine Learning pentru Analiză de Marketing în R

Cross-validare: acuratețe

Calculul acurateței prin cross-validare

library(boot)
# Accuracy function with threshold = 0.3
Acc03 <- function(r, pi = 0) {
  cm <- confusion.matrix(r, pi, threshold = 0.3)
  acc <- sum(diag(cm)) / sum(cm)
  return(acc)}
# Accuracy
set.seed(534381)
cv.glm(churnData, logitModelNew, cost = Acc03, K = 6)$delta
0.7943894
Machine Learning pentru Analiză de Marketing în R
Lecții din Regresia Logistică
Ați învățat... cum să prognozați clienții unui magazin online cu risc de abandon
să utilizați o regresie logistică binară pentru calcularea probabilităților
că alegerea pragului este esențială
Lecții din Model
Ați învățat... că abonații la newsletter au mai multe șanse să revină
că clienții care folosesc cupoane au mai puține șanse să revină
că clienții fără taxe de livrare au mai multe șanse să revină
etc...
Machine Learning pentru Analiză de Marketing în R

Ultimul exercițiu!

Machine Learning pentru Analiză de Marketing în R

Preparing Video For Download...