Machine Learning cho Phân tích Marketing bằng R
Verena Pflieger
Data Scientist at INWT Statistics
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)
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)
# 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

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
| 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