Machine Learning for Marketing Analytics in R
Verena Pflieger
Data Scientist at INWT Statistics
1) Diviser l'ensemble de données en entraînement et test
# Générer un index aléatoire pour les ensembles d'entraînement et de test
# set.seed assure la reproductibilité des composantes aléatoires
set.seed(534381)
churnData$isTrain <- rbinom(nrow(churnData), 1, 0.66)
train <- subset(churnData, churnData$isTrain == 1)
test <- subset(churnData, churnData$isTrain == 0)
2) Construire un modèle à partir des données d'entraînement
# Modéliser logitTrainNew
logitTrainNew <- glm( returnCustomer ~ title + newsletter +
websiteDesign + paymentMethod + couponDiscount +
purchaseValue + throughAffiliate +
shippingFees + dvd + blueray + vinyl +
videogameDownload + prodOthers + prodRemitted,
family = binomial, data = train)
# Prédiction hors échantillon pour logitTrainNew
test$predNew <- predict(logitTrainNew, type = "response",
newdata = test)
# Calculer la matrice de confusion
confMatrixNew <- confusion.matrix(test$returnCustomer, test$predNew,
threshold = 0.3)
confMatrixNew
# Calculer la justesse (accuracy)
accuracyNew <- sum(diag(confMatrixNew)) / sum(confMatrixNew)
accuracyNew
obs
pred 0 1
0 11939 2449
1 716 350
0.7951987

Calcul de la justesse avec validation croisée
library(boot)
# Fonction de justesse avec threshold = 0.3
Acc03 <- function(r, pi = 0) {
cm <- confusion.matrix(r, pi, threshold = 0.3)
acc <- sum(diag(cm)) / sum(cm)
return(acc)}
# Justesse
set.seed(534381)
cv.glm(churnData, logitModelNew, cost = Acc03, K = 6)$delta
0.7943894
| À retenir : régression logistique | |
|---|---|
| Vous avez appris… | à prédire les clients d'une boutique en ligne susceptibles d'abandonner |
| à utiliser une régression logistique binaire pour calculer des probabilités | |
| que le choix du seuil est crucial |
| À retenir : le modèle | |
|---|---|
| Vous avez appris… | que les clients abonnés à l'infolettre reviennent plus souvent |
| que les clients utilisant un coupon reviennent moins souvent | |
| que les clients sans frais d'expédition reviennent plus souvent | |
| etc. |
Machine Learning for Marketing Analytics in R