Xác thực ngoài mẫu và cross validation

Machine Learning cho Phân tích Marketing bằng R

Verena Pflieger

Data Scientist at INWT Statistics

Độ khớp ngoài mẫu: tập huấn luyện và kiểm tra

1) Chia dữ liệu thành tập huấn luyện và tập kiểm tra

# Tạo chỉ số ngẫu nhiên cho tập huấn luyện và kiểm tra
# set.seed giúp tái lập các thành phần ngẫu nhiên
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 cho Phân tích Marketing bằng R

Độ khớp ngoài mẫu: xây dựng mô hình

2) Xây dựng mô hình dựa trên tập huấn luyện

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

# Dự đoán ngoài mẫu cho logitTrainNew
test$predNew <- predict(logitTrainNew, type = "response",
                        newdata = test)
Machine Learning cho Phân tích Marketing bằng R

Độ chính xác ngoài mẫu

# Tính ma trận nhầm lẫn
confMatrixNew <- confusion.matrix(test$returnCustomer, test$predNew, 
                 threshold = 0.3)
confMatrixNew

# Tính độ chính xác 
accuracyNew <- sum(diag(confMatrixNew)) / sum(confMatrixNew)
accuracyNew
    obs
pred     0    1
   0 11939 2449
   1   716  350

0.7951987
Machine Learning cho Phân tích Marketing bằng R

Cross-validation: thiết lập

Machine Learning cho Phân tích Marketing bằng R

Cross-validation: độ chính xác

Tính độ chính xác cross-validated

library(boot)
# Hàm Accuracy với threshold = 0.3
Acc03 <- function(r, pi = 0) {
  cm <- confusion.matrix(r, pi, threshold = 0.3)
  acc <- sum(diag(cm)) / sum(cm)
  return(acc)}
# Độ chính xác
set.seed(534381)
cv.glm(churnData, logitModelNew, cost = Acc03, K = 6)$delta
0.7943894
Machine Learning cho Phân tích Marketing bằng R
Bài học về Logistic Regression
Bạn đã học... cách dự đoán khách hàng của cửa hàng online có khả năng churn
dùng binary logistic regression để tính xác suất
rằng chọn ngưỡng (threshold) là then chốt
Bài học từ mô hình
Bạn đã học... khách đăng ký newsletter có khả năng quay lại cao hơn
khách dùng coupon có khả năng quay lại thấp hơn
khách không mất phí vận chuyển có khả năng quay lại cao hơn
v.v.
Machine Learning cho Phân tích Marketing bằng R

Bài tập cuối!

Machine Learning cho Phân tích Marketing bằng R

Preparing Video For Download...