Trong các lĩnh vực như truyền hình số, viễn thông và dịch vụ streaming, việc dự đoán chính xác khả năng khách hàng rời bỏ dịch vụ là yếu tố quan trọng giúp doanh nghiệp thực hiện các biệ
Trang 1PROJECT NAME: Build A Decision Tree
Model For Customer Churn
Developed by:
Team members:
• Nguyen Hoang Nguyen Khoi
• Nguyen Hoang Phu
• Le Duc Loi
• Nguyen Dao Minh Khoa
Tran Ngoc Khanh Van Huynh Minh Hai Pham Van Minh
Lecturer: MSc Hồ Nhựt Minh
Trang 2TABLE OF CONTENTS
PHẦN 1: GIỚI THIỆU CHUNG 1
1.1 Giới thiệu chung về dự án 1
1.2 Mục tiêu của dự án 1
1.3 Mô tả chi tiết dữ liệu 2
PHẦN 2: TECHNOLOGY REQUIREMENTS 3
2.1 Hardware 3
2.2 Software 3
PHẦN 3: MÔ HÌNH HỌC MÁY 4
3.1 Lựa chọn mô hình 4
3.2 Tổng quan về mô hình 4
PHẦN 4: TRIỂN KHAI DỰ ÁN 5
4.1 Import các thư viện cần thiết và đọc tập dữ liệu 5
4.2 Feature Engineering 5
4.2.1 Xử lí các dữ liệu bị thiếu 5
4.3 Model Building 5
4.3.1 Phân chia dữ liệu: 5
4.3.2 Xử lý mất cân bằng dữ liệu: 5
4.3.3 Xây dựng mô hình Cây Quyết Định: 6
4.4 Model Validation (predictions) 6
4.4.1 Đánh giá theo lớp 0.0 (khách hàng không rời bỏ): 7
4.4.2 Đánh giá theo lớp 1.0 (khách hàng rời bỏ): 7
4.4.3 Tổng quan mô hình: 8
4.4.4 Khu vực dưới đường cong (AUC): 8
4.4.5 Kết luận: 9
4.5 Feature Importance 10
PHẦN 5: TRIỂN KHAI THỰC TẾ 12
5.1 Mục đích 12
5.2 Các bước quan trọng 12
5.3 Thách thức và giải pháp 12
PHẦN 6: HƯỚNG DẪN SỬ DỤNG 13
6.1 Hướng Dẫn Cài Đặt và Chạy Phần Mềm: 13
6.2 Hướng Dẫn Sử Dụng: 13
PHẦN 7: CẢI THIỆN TRONG TƯƠNG LAI 15
Trang 37.1 Hạn Chế 15 7.2 Cải Tiến 15
Trang 41
PHẦN 1: GIỚI THIỆU CHUNG
1.1 Giới thiệu chung về dự án
Customer churn (tỷ lệ khách hàng rời bỏ) là một chỉ số quan trọng trong việc đánh giá sự trung thành của khách hàng cũng như tính hiệu quả của các chiến lược giữ chân Trong các lĩnh vực như truyền hình số, viễn thông và dịch vụ streaming, việc dự đoán chính xác khả năng khách hàng rời bỏ dịch vụ là yếu tố quan trọng giúp doanh nghiệp thực hiện các biện pháp kịp thời để giảm thiểu tổn thất
Dữ liệu được sử dụng trong dự án bao gồm các thông tin về hành vi và nhân khẩu học của khách hàng như năm đăng ký, thời gian xem hàng tuần, số video đã xem và số lần khách hàng liên
hệ với bộ phận hỗ trợ Bộ dữ liệu chứa 16 biến, trong đó có biến mục tiêu là churn, cùng với một
số giá trị thiếu ở các biến như giới tính, số ngày không hoạt động tối đa, và churn
Trong dự án này, Decision Tree đã được sử dụng làm mô hình chính để dự đoán tỉ lệ rời bỏ của khách hàng, nhờ vào khả năng khai thác tốt các mối quan hệ phức tạp giữa các biến đầu vào Ngoài ra, mô hình Logistic Regression được sử dụng để so sánh, làm nổi bật độ chính xác và tính
ưu việt của Decision Tree trong việc đưa ra dự đoán
1.2 Mục tiêu của dự án
Mục tiêu của dự án là xây dựng một mô hình Cây Quyết Định nhằm dự đoán khả năng rời
bỏ của khách hàng, giúp doanh nghiệp nhận diện những khách hàng có nguy cơ cao và thực hiện các biện pháp để giảm tỷ lệ rời bỏ Các mục tiêu chính bao gồm:
Xây dựng Mô hình Dự đoán: Sử dụng Cây Quyết Định để phân tích hành vi và dự đoán
việc rời bỏ của khách hàng
Xác định Yếu tố Quan trọng: Nêu bật các yếu tố như số ngày không hoạt động, các cuộc
gọi hỗ trợ và mức độ tương tác có ảnh hưởng lớn đến việc rời bỏ
Trang 52
Cải thiện Khả năng Giữ chân khách hàng: Hỗ trợ các chiến lược giữ chân khách hàng
có mục tiêu, tập trung vào những khách hàng có nguy cơ cao để giảm thiểu tỷ lệ churn
1.3 Mô tả chi tiết dữ liệu
Tập CSV bao gồm khoảng 2000 hàng và 16 cột Trong đó cột “Churn” là nhãn và các cột
còn lại là các đặc trưng (features):
1 Year – Năm thống kê
2 Customer_id - Mã khách hàng duy nhất
3 Phone_no - Số điện thoại của khách hàng
4 Gender - Giới tính (Nam/Nữ)
5 Age – Tuổi của khách hàng
6 No of days subscribed - Số ngày kể từ khi đăng ký
7 Multi-screen - Khách hàng có gói thuê bao một hay nhiều màn hình (thiết bị)
8 Mail subscription - Khách hàng có đăng kí nhận thông báo email hay không
9 Weekly mins watched - Số phút xem hàng tuần
10 Minimum daily mins - Số phút tối thiểu xem hàng ngày
11 Maximum daily mins - Số phút tối đa xem hàng ngày
12 Weekly nights max mins - Số phút xem vào ban đêm hàng tuần
13 Videos watched - Tổng số video đã xem
14 Maximum_days_inactive - Số ngày kể từ khi không hoạt động
15 Customer support calls - Số lần gọi hỗ trợ khách hàng
16 Churn ● 1- Khách hàng rời bỏ
● 0 – Khách hàng không rời bỏ
Dữ liệu chứa tổng cộng 82 dòng bị thiếu giá trị (một dòng có thể thiếu nhiều giá trị) Một
số giá trị bị thiếu trong các cột quan trọng, cụ thể là:
• Gender (Giới tính): Có 24 giá trị bị thiếu, tương ứng với 24 khách hàng không có thông
tin về giới tính
• Churn (Rời bỏ): Có 35 giá trị bị thiếu, điều này có thể ảnh hưởng đến việc đánh giá
chính xác khả năng rời bỏ của khách hàng
• Maximum_days_inactive (Số ngày không hoạt động tối đa): 28 giá trị bị thiếu, làm
giảm thông tin về hành vi không hoạt động của khách hàng
Trang 63
PHẦN 2: TECHNOLOGY REQUIREMENTS
2.1 Hardware
• Processor: Intel Core i5/i7 or equivalent
• RAM: 8 GB or higher
• Storage: SSD recommended for faster data processing
• Mouse
• Keyboard
2.2 Software
• Programming Language: Python (3.x)
• IDE: Jupyter Notebook, PyCharm, or VS Code
• Libraries - NumPy, pandas, matplotlib, sklearn, pickle, imblearn
Trang 74
PHẦN 3: MÔ HÌNH HỌC MÁY
3.1 Lựa chọn mô hình
Việc lựa chọn mô hình cho dự án dự đoán customer churn được cân nhắc dựa trên các yếu
tố quan trọng như tính đơn giản, khả năng giải thích và hiệu suất trên dữ liệu mất cân bằng
Cây Quyết Định (Decision Tree) được chọn làm mô hình chính vì các lý do sau:
Khả năng xử lý các đặc trưng phức tạp: Decision Tree có khả năng xử lý tốt cả dữ liệu định tính và định lượng, điều này rất phù hợp với tập dữ liệu churn, vốn bao gồm nhiều loại đặc trưng khác nhau (như tuổi, số ngày đăng ký, giới tính, số phút xem hàng tuần )
Tính dễ hiểu và trực quan: Cây Quyết Định có cấu trúc trực quan, dễ dàng biểu diễn và giải thích cho cả người không chuyên Điều này giúp hiểu rõ hơn cách mô hình đưa ra quyết định về việc khách hàng có khả năng rời bỏ hay không dựa trên các yếu tố cụ thể
Hiệu quả với dữ liệu mất cân bằng: Dữ liệu churn thường có sự mất cân bằng giữa hai lớp khách hàng rời bỏ và không rời bỏ Để giải quyết vấn đề này, kỹ thuật SMOTE (Synthetic Minority Oversampling Technique) được áp dụng SMOTE giúp tạo ra thêm các mẫu từ lớp thiểu số (khách hàng rời bỏ) để cân bằng với lớp đa số, từ đó cải thiện hiệu suất của mô hình Decision Tree
Linh hoạt trong quá trình huấn luyện: Với khả năng điều chỉnh các tham số như tiêu chuẩn phân tách ('entropy') và khả năng chống overfitting thông qua việc cắt tỉa cây, Decision Tree là một lựa chọn phù hợp để tìm ra cấu trúc mô hình tốt nhất cho bài toán này
3.2 Tổng quan về mô hình
Cây Quyết Định (Decision Tree) là một mô hình học có giám sát được sử dụng phổ biến
trong các bài toán phân loại và hồi quy Mô hình hoạt động bằng cách xây dựng một cấu trúc dạng cây, trong đó mỗi nút nội tại tương ứng với một câu hỏi dựa trên một đặc trưng của dữ liệu Mô hình tiếp tục chia nhỏ dữ liệu dựa trên các điều kiện này cho đến khi đạt đến các nút lá, nơi đưa ra các dự đoán cuối cùng
Các tham số của Decision Tree được sử dụng trong dự án:
• criterion='entropy':
Tham số này quy định cách thức chia tách các nút trong cây Với 'entropy', mỗi nút sẽ được chia sao cho giảm thiểu mức độ hỗn độn (entropy) của các nhánh con, dẫn đến việc mô hình sẽ tập trung vào những chia tách giúp tăng độ chính xác cho các dự đoán
• random_state=13:
Tham số này giúp đảm bảo quá trình huấn luyện mô hình luôn cho ra cùng một kết quả khi được chạy lại, bằng cách cố định seed cho bộ sinh số ngẫu nhiên
Trang 85
PHẦN 4: TRIỂN KHAI DỰ ÁN
4.1 Import các thư viện cần thiết và đọc tập dữ liệu
Thực hiện việc nhập các thư viện cần thiết như pandas, numpy, scikit-learn, và imbalanced-learn
Đọc tập dữ liệu từ file CSV vào một DataFrame
4.2 Feature Engineering
4.2.1 Xử lí các dữ liệu bị thiếu
Tổng số dòng chứa dữ liệu bị thiếu khá nhỏ, có thể sẽ không ảnh hưởng tới kết quả nên các dòng với dữ liệu bị thiếu sẽ được bỏ đi trong dự án này (82 dòng) Tổng số dòng còn lại sẽ là 1918 dòng
Xóa các cột không cần thiết khỏi DataFrame để giảm thiểu độ phức tạp và tập trung vào các đặc trưng quan trọng Các cột bị xóa gồm: ['customer_id','phone_no', 'year']
4.3 Model Building
Trong phần xây dựng mô hình, một mô hình Cây Quyết Định (Decision Tree) được phát triển nhằm dự đoán khả năng khách hàng sẽ rời bỏ hay không Quá trình này bao gồm các bước sau:
4.3.1 Phân chia dữ liệu:
Tập dữ liệu được chia thành hai phần: tập huấn luyện (training set) và tập kiểm tra (test set) bằng cách sử dụng hàm train_test_split từ thư viện sklearn.model_selection Tỷ lệ phân chia được thiết lập là 70% cho tập huấn luyện và 30% cho tập kiểm tra, với một seed cố định (random_state=0) nhằm đảm bảo tính tái lập của phân chia này
4.3.2 Xử lý mất cân bằng dữ liệu:
Trong tổng số 1918 khách hàng, sự phân bố của biến ‘churn’ trong tập dữ liệu như sau:
• 1665 khách hàng (86.7%) không rời bỏ (mã 0.0)
• 253 khách hàng (13.3%) rời bỏ (mã 1.0)
Điều này cho thấy có sự mất cân bằng rõ rệt giữa hai lớp, với số lượng khách hàng không rời bỏ vượt trội hơn nhiều so với số khách hàng rời bỏ Sự mất cân bằng này có thể ảnh hưởng đến hiệu suất của các mô hình dự đoán
Để giải quyết vấn đề mất cân bằng giữa các lớp trong tập dữ liệu, kỹ thuật SMOTE
(Synthetic Minority Oversampling Technique) được áp dụng Kỹ thuật này tạo ra các mẫu giả từ lớp thiểu số (khách hàng rời bỏ) nhằm cân bằng số lượng mẫu giữa hai lớp Điều này giúp cải thiện hiệu suất của mô hình, đặc biệt trong các bài toán phân loại như dự đoán tỷ lệ khách hàng rời bỏ
Trang 96
Việc áp dụng SMOTE đã giúp tạo ra số lượng mẫu cân bằng giữa hai lớp trong biến mục tiêu ‘churn’
Điều này giải thích rằng lượng khách hàng không rời bỏ và số lượng khách hàng rời bỏ đều
bằng nhau, cho phép mô hình học máy có đủ dữ liệu từ cả hai lớp để học và đưa ra dự đoán chính xác hơn Điều này sẽ giúp cải thiện hiệu suất của mô hình trong việc nhận diện khách hàng có nguy cơ rời bỏ, giảm thiểu thiên lệch trong dự đoán và nâng cao khả năng tổng quát của mô hình trong các tình huống thực tế
4.3.3 Xây dựng mô hình Cây Quyết Định:
Mô hình Cây Quyết Định được khởi tạo với các tham số như random_state=13 (đảm bảo tính tái lập) và criterion='entropy' (sử dụng độ entropy làm tiêu chí để chia tách các nút trong
cây) Mô hình được huấn luyện bằng cách gọi hàm fit với dữ liệu huấn luyện (X_train, y_train)
4.4 Model Validation (predictions)
• Accuracy score: Tính toán độ chính xác của mô hình trên tập kiểm tra
• Confusion matrix: Để phân tích hiệu suất của mô hình
• ROC and AUC: Vẽ đồ thị ROC và tính toán AUC (Area Under the Curve) để đánh giá khả năng phân loại của mô hình
• Recall score: Tính toán điểm recall để đánh giá khả năng phát hiện lớp thiểu số
• Precision score: Tính toán điểm precision để đánh giá độ chính xác của các dự đoán
• F1-score: Tính toán điểm F1 để cân bằng giữa recall và precision
Trang 107
4.4.1 Đánh giá theo lớp 0.0 (khách hàng không rời bỏ):
Precision: 0.94, điều này cho thấy 94% trong số những khách hàng được dự đoán không
rời bỏ thực sự là không rời bỏ
Recall: 0.84, cho biết 84% trong số khách hàng không rời bỏ đã được mô hình phát hiện
đúng
F1-Score: 0.89, chỉ số này là trung bình hài hòa giữa precision và recall, cho thấy mô hình hoạt động khá tốt trong việc nhận diện khách hàng không rời bỏ
Support: 513, tổng số khách hàng không rời bỏ trong tập kiểm tra là 513
4.4.2 Đánh giá theo lớp 1.0 (khách hàng rời bỏ):
Precision: 0.31, chỉ ra rằng chỉ có 31% trong số những khách hàng được dự đoán rời bỏ thực sự là rời bỏ
Recall: 0.57, cho thấy 57% trong số khách hàng rời bỏ đã được mô hình phát hiện đúng
Trang 118
F1-Score: 0.40, chỉ số này thấp hơn nhiều so với lớp không rời bỏ, cho thấy mô hình gặp khó khăn trong việc nhận diện khách hàng có khả năng rời bỏ
Support: 63, tổng số khách hàng rời bỏ trong tập kiểm tra là 63
4.4.3 Tổng quan mô hình:
Accuracy: 0.81, mô hình đạt được độ chính xác 81% trên toàn bộ tập kiểm tra, cho thấy rằng phần lớn các dự đoán của mô hình là chính xác
Macro Average: Precision: 0.62, Recall: 0.71, F1-Score: 0.64, các chỉ số này tính toán
trên cơ sở trung bình không trọng số giữa các lớp, phản ánh hiệu suất tổng quát của mô hình trên
cả hai nhóm khách hàng
Weighted Average: Precision: 0.87, Recall: 0.81, F1-Score: 0.84, các chỉ số này tính toán
trên cơ sở trung bình có trọng số theo số lượng mẫu trong từng lớp, cho thấy mô hình hoạt động
tốt hơn trong việc dự đoán khách hàng không rời bỏ
4.4.4 Khu vực dưới đường cong (AUC):
AUC: 0.71
Khu vực dưới đường cong (AUC) cho thấy khả năng phân loại của mô hình Với AUC = 0.71, mô hình có khả năng phân biệt giữa hai lớp khách hàng rời bỏ và không rời bỏ ở mức độ vừa phải, nhưng còn nhiều tiềm năng để cải thiện
Trang 129
4.4.5 Kết luận:
Mô hình Decision Tree đã hoạt động khá tốt trong việc nhận diện khách hàng không rời
bỏ, nhưng cần cải thiện đáng kể trong việc dự đoán khách hàng có khả năng rời bỏ Việc điều chỉnh thêm các tham số của mô hình hoặc áp dụng các kỹ thuật khác để xử lý sự không cân bằng dữ liệu
có thể giúp cải thiện hiệu suất của mô hình trong tương lai
Trang 1310
4.5 Feature Importance
Trang 1411
Trong quá trình phân tích và xây dựng mô hình dự đoán khách hàng rời bỏ (customer churn), một trong những yếu tố quan trọng là xác định mức độ ảnh hưởng của các đặc trưng khác
nhau đến kết quả dự đoán Dựa trên kết quả từ hàm plot_feature_importances trong mô hình Cây
Quyết Định, các đặc trưng đã được sắp xếp theo mức độ quan trọng như sau:
1 Maximum_days_inactive: Số ngày tối đa không hoạt động của khách hàng là đặc trưng
quan trọng nhất, cho thấy rằng thời gian không hoạt động lâu có thể là một chỉ số mạnh về khả năng khách hàng rời bỏ
2 Maximum daily mins: Số phút tối đa xem hàng ngày cũng đóng vai trò quan trọng, cho
thấy mối quan hệ giữa việc sử dụng dịch vụ và khả năng giữ chân khách hàng
3 Customer support calls: Số lần khách hàng gọi hỗ trợ khách hàng là một yếu tố đáng kể,
điều này có thể chỉ ra rằng sự cần thiết phải liên lạc với dịch vụ khách hàng có thể liên quan đến khả năng rời bỏ
4 No of days subscribed: Số ngày đã đăng ký dịch vụ cho thấy rằng thời gian sử dụng dịch
vụ cũng có thể ảnh hưởng đến quyết định của khách hàng về việc rời bỏ
5 Minimum daily mins: Số phút tối thiểu xem hàng ngày cho thấy rằng thói quen sử dụng
dịch vụ của khách hàng có thể đóng vai trò quan trọng trong quyết định của họ
6 Weekly nights max mins: Số phút tối đa xem vào ban đêm trong tuần cũng góp phần vào
việc xác định sự tương tác của khách hàng với dịch vụ
7 Weekly mins watched: Tổng số phút xem hàng tuần có thể phản ánh mức độ hài lòng và
sự tương tác của khách hàng với dịch vụ
8 Age: Tuổi tác của khách hàng cũng là một yếu tố, tuy nhiên ảnh hưởng của nó có thể không
mạnh như các đặc trưng khác
9 Videos watched: Số lượng video đã xem có thể cho thấy sự tương tác của khách hàng với
nội dung, nhưng có thể không phải là yếu tố chính trong quyết định rời bỏ
Những kết quả này cung cấp cái nhìn sâu sắc về những yếu tố nào có thể ảnh hưởng đến khả năng khách hàng rời bỏ Việc nhận diện các đặc trưng quan trọng này có thể hỗ trợ trong việc phát triển các chiến lược giữ chân khách hàng hiệu quả hơn, từ đó nâng cao hiệu suất kinh doanh
và giảm tỷ lệ churn