Validação fora da amostra e cross-validation

Machine Learning for Marketing Analytics in R

Verena Pflieger

Data Scientist at INWT Statistics

Ajuste fora da amostra: treino e teste

1) Divida o conjunto de dados em treino e teste

# Gerando índice aleatório para treino e teste
# set.seed garante reprodutibilidade dos componentes aleatórios
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 for Marketing Analytics in R

Ajuste fora da amostra: construindo o modelo

2) Construa um modelo com os dados de treino

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

# Predição fora da amostra para logitTrainNew
test$predNew <- predict(logitTrainNew, type = "response",
                        newdata = test)
Machine Learning for Marketing Analytics in R

Acurácia fora da amostra

# Calculando a matriz de confusão
confMatrixNew <- confusion.matrix(test$returnCustomer, test$predNew, 
                 threshold = 0.3)
confMatrixNew

# Calculando a acurácia 
accuracyNew <- sum(diag(confMatrixNew)) / sum(confMatrixNew)
accuracyNew
    obs
pred     0    1
   0 11939 2449
   1   716  350

0.7951987
Machine Learning for Marketing Analytics in R

Cross-validation: configuração

Machine Learning for Marketing Analytics in R

Cross-validation: acurácia

Cálculo da acurácia com cross-validation

library(boot)
# Função de acurácia com threshold = 0.3
Acc03 <- function(r, pi = 0) {
  cm <- confusion.matrix(r, pi, threshold = 0.3)
  acc <- sum(diag(cm)) / sum(cm)
  return(acc)}
# Acurácia
set.seed(534381)
cv.glm(churnData, logitModelNew, cost = Acc03, K = 6)$delta
0.7943894
Machine Learning for Marketing Analytics in R
Aprendizados em Regressão Logística
Você aprendeu... a prever clientes de uma loja online com maior chance de churn
a usar regressão logística binária para calcular probabilidades
que a escolha do limiar é crucial
Aprendizados do Modelo
Você aprendeu... que clientes inscritos na newsletter tendem mais a retornar
que clientes que usam cupom tendem menos a retornar
que clientes sem frete tendem mais a retornar
etc.
Machine Learning for Marketing Analytics in R

Último exercício!

Machine Learning for Marketing Analytics in R

Preparing Video For Download...