
















Preview text:
  lOMoAR cPSD| 58800262
ĐỀ TÀI NHẬP MÔN TRÍ TUỆ NHÂN TẠO  NHÓM 7 
Build a Churn Prediction Model using Esemble Learning  Developed by: 
Nhóm 7 – team members:  • Phạm Tiến Phúc Hưng  • Nguyễn Quốc Bình  • Bùi Minh Đức  • Nguyễn Thành Thắng  • Dương Đức Phúc  • Hoàng Trọng Quyền  • Trần Tiến Đạt 
Lecturer: MSc. Hồ Nhựt Minh                                  lOMoAR cPSD| 58800262 TABLE OF CONTENTS 
ABSTRACT ............................................................................................................................4 
1. INTRODUCTION..............................................................................................................4  1.1  Overview  of  the  project 
..................................................................................................4 
1.2 Objectives and goals......................................................................................................5 
1.3 Background and context...............................................................................................5 
1.3.1 Learning Models ...............................................................................5 
1.3.2 Dataset Description......................................................................................7 
2. TECHNOLOGY REQUIREMENTS...............................................................................9 
2.1 Hardware.........................................................................................................9  2.2    Sof
tware ..................................................................................................................10 
3. ARCHITECTURE ...........................................................................................................10 
3.1 Model Selection .................................................................................................10  3.2  EfficientNet-B0  Architecture 
Overview......................................................................11 
3.2.1 The EfficientNet-B0 network...................................................................11 
3.2.2 Compound Scaling Method ...........................................................................11 
3.2.3 Diagrams.........................................................................................................13 
4. DETAILED DESIGN OF LEARNING MODEL .........................................................13 
4.1 The Input ..........................................................................................14 
4.2 The Output...................................................................................................14 
4.3 Preprocessing........................................................................................15  4.4  Transfer  Learning 
Approach.......................................................................................15 
5.PROJECT EXCECUTION ..............................................................................................15 
5.1 DOWNLOAD DATASET ...........................................................................................15 
5.2 Data Preprocessing ...................................................................................................15 
5.3 Dataset Splitting.....................................................................................................16  5.4  Model  Training  (Computing  on  Colab) 
.......................................................................16 
5.5 Push Data and Model to DBFS - Databrick ..........................................................17  5.5.1  Cluster 
Creation.....................................................................................................17 
5.5.2 Running Code and Tasks ............................................................................18 
5.6 Test and Evaluate Model......................................................................................18 
 5.6.1 Test Model ......................................................................................................18      lOMoAR cPSD| 58800262
 5.6.2 Evaluate Model .....................................................................................................19 
5.7 Deploy Model (via application)....................................................................................19  Page 2/27 
6. IMPLEMENTATION......................................................................................................19  6.1 
Purpose...........................................................................................................................19 
6.2 Important coding steps .....................................................................................19 
6.2.1 Load the Model ..........................................................................................19 
6.2.2 Load the Leaf Image........................................................................................20 
6.2.3 Image to Numbers................................................................................................20 
6.2.4 Preprocessing ....................................................................................................21 
6.2.5 Predict the Disease...........................................................................................21 
6.2.6 Show Results.......................................................................................................21 
6.2.7 Display the Image ..............................................................................................21 
6.2.8 Outcome................................................................................................................21 
6.3 Any challenges faced during implementation and how they were addressed  ..........22 
7. TESTING ..........................................................................................................................22 
7.1 DETAILS ABOUT THE TESTING PROCESS ...................................................22 
7.2 TEST CASES AND RESULTS..............................................................................24 
7.3 Any issues encountered during testing and their resolution....................................24 
8. USAGE ..............................................................................................................................24 
8.1 Instructions on how to install and run the software ..................................................25 
8.2 User manuals or guides..........................................................................................25      lOMoAR cPSD| 58800262
9. FURTHER IMPROVEMENT........................................................................................25 
9.1 Limitations..................................................................................................................25 
9.2 Improvement ...............................................................................................................26 
CONTRIBUTIONS.............................................................................................27        Page 3/27  ABSTRACT   
Nghiên cứu này phát triển một mô hình dự đoán tỷ lệ rời bỏ (churn) sử dụng kỹ thuật học tập tập 
hợp (ensemble learning) với 15 thuộc tính liên quan đến khách hàng. Bộ dữ liệu chứa thông tin 
về định danh khách hàng, nhân khẩu học, thông tin đăng ký, thói quen xem và các tương tác với 
dịch vụ hỗ trợ. Bằng cách áp dụng các phương pháp học tập tiên tiến, chúng tôi đã cải thiện độ 
chính xác trong việc xác định khách hàng có nguy cơ rời bỏ. Mô hình này giúp doanh nghiệp 
triển khai các chiến lược giữ chân hiệu quả, nâng cao sự trung thành và giảm tỷ lệ rời  bỏ.1RODUCTION 
1.1 OVERVIEW OF THE PROJECT 
Mô hình dự đoán tỷ lệ rời bỏ (churn prediction) được phát triển nhằm giải quyết thách thức trong 
việc giữ chân khách hàng, điều này rất quan trọng cho sự bền vững và phát triển của doanh 
nghiệp. Tỷ lệ rời bỏ cao không chỉ ảnh hưởng đến doanh thu mà còn gây ra khó khăn trong việc 
phát triển thương hiệu. Dự án này tập trung vào việc sử dụng các kỹ thuật học tập tập hợp 
(ensemble learning) để phân tích hành vi khách hàng dựa trên một bộ dữ liệu đa dạng, bao gồm 
các thuộc tính như thông tin cá nhân, thói quen sử dụng dịch vụ, và mức độ tương tác với dịch  vụ hỗ trợ.      lOMoAR cPSD| 58800262
Dự án sử dụng thuật toán học máy để nâng cao độ chính 
xác trong việc xác định khách hàng có nguy cơ rời bỏ. 
Điều này giúp doanh nghiệp triển khai các chiến lược 
giữ chân khách hàng hiệu quả hơn. So với các phương 
pháp truyền thống như khảo sát và phân tích dữ liệu thủ 
công, mô hình này tiết kiệm thời gian, tài nguyên và 
tăng cường khả năng phản ứng nhanh với các dấu hiệu  rời bỏ.  Page 4/27   
1.2 OBJECTIVES   AND GOALS   
Dự án này sử dụng phương pháp ensemble, bao gồm bagging và boosting, để cải thiện độ chính 
xác trong việc dự đoán khách hàng có nguy cơ rời bỏ. Mục tiêu là xác định xem khách hàng của 
công ty viễn thông nào đó có gia hạn đăng ký dịch vụ một năm hay không, từ đó giúp công ty 
phát triển các chiến lược giữ chân hiệu quả hơn.         lOMoAR cPSD| 58800262
1.3 DATASET DESCRIPTION 
1.3.1 Nôi dung và cấu trúc ̣ 
Dataset "data_regression.csv" chứa thông tin về một công ty cung cấp dịch vụ phát video 
trực tuyến, nơi họ muốn dự đoán liệu khách hàng có rời bỏ dịch vụ (churn) hay không. Tập 
dữ liệu này bao gồm các thông tin liên quan đến hồ sơ của khách hàng và thói quen sử dụng  dịch vụ. 
1.3.2 Đăc điểm của dữ liệ  u ̣ 
Tập dữ liệu có 16 cột với các thông tin về nhân khẩu học, hành vi sử dụng và trạng thái rời bỏ 
dịch vụ của khách hàng. Mỗi hàng đại diện cho một khách hàng cụ thể: 
1. year: Năm ghi nhận dữ liệu. 
2. customer_id: Mã số nhận diện khách hàng (mỗi khách hàng có một mã duy nhất). 
3. phone_no: Số điện thoại của khách hàng. 
4. gender: Giới tính của khách hàng (Male/Female). 
5. age: Tuổi của khách hàng. 
6. no_of_days_subscribed: Số ngày khách hàng đã đăng ký sử dụng dịch vụ. 
7. multi_screen: Khách hàng có sử dụng dịch vụ trên nhiều màn hình (Yes/No). 
8. mail_subscribed: Khách hàng có đăng ký nhận email thông báo (Yes/No). 
9. weekly_mins_watched: Số phút trung bình khách hàng xem nội dung trong một tuần. 
10. minimum_daily_mins: Số phút ít nhất mà khách hàng xem nội dung trong một ngày. 
11. maximum_daily_mins: Số phút tối đa mà khách hàng xem nội dung trong một ngày. 
12. weekly_max_night_mins: Số phút tối đa khách hàng xem nội dung vào ban đêm  trong một tuần. 
13. videos_watched: Số video mà khách hàng đã xem. 
14. maximum_days_inactive: Số ngày tối đa mà khách hàng không sử dụng dịch vụ. 
15. customer_support_calls: Số lần khách hàng gọi hỗ trợ khách hàng. 
16. churn: Biến mục tiêu, biểu thị liệu khách hàng có rời bỏ dịch vụ hay không (0 - 
Không rời bỏ, 1 Rời bỏ). 
 1.3.3 Đăc điểm của dữ liệ  u ̣ 
Tập dữ liệu bao gồm khoảng 2000 hàng (đại diện cho 2000 khách hàng) và 16 cột. Các cột 
cung cấp thông tin chi tiết về hành vi và các yếu tố có thể ảnh hưởng đến quyết định rời bỏ 
của khách hàng, từ đó hỗ trợ trong việc dự đoán và phân tích. 
1.3.4 Kích thước của dữ liêu ̣ 
Với 2000 hàng, tập dữ liệu cung cấp một lượng thông tin đủ lớn để xây dựng và thử nghiệm các 
mô hình học máy nhằm dự đoán khả năng rời bỏ của khách hàng. Mặc dù đây là một tập dữ liệu 
vừa phải về kích thước, nhưng nó bao gồm nhiều yếu tố quan trọng liên quan đến hành vi khách 
hàng, từ đó có thể phát triển các mô hình dự đoán có độ chính xác cao.      lOMoAR cPSD| 58800262
2.   TECHNOLOGY   R    E  Figure 1: Data regression  1.4 TECH TASK   
Trong quá trình xây dựng và phát triển mô hình dự đoán, nhóm em sử dụng các công cụ và thư viện 
từ Python để hỗ trợ phân tích dữ liệu, xử lý dữ liệu và xây dựng mô hình học máy. Các thành phần 
kỹ thuật chính bao gồm:  • 
Ngôn ngữ lập trình: 
o Python: Ngôn ngữ lập trình chính được sử dụng do khả năng mạnh mẽ trong 
việc phân tích dữ liệu và hỗ trợ cho các thư viện học máy.  •  Các thư viện: 
o NumPy: Thư viện xử lý mảng đa chiều, giúp thao tác nhanh chóng và hiệu quả  với dữ liệu số. 
o pandas: Công cụ chính để xử lý và thao tác dữ liệu dạng bảng (DataFrame), 
hỗ trợ đọc, lọc và biến đổi dữ liệu. 
o matplotlib: Thư viện trực quan hóa dữ liệu, giúp tạo các biểu đồ và đồ thị để 
hiểu rõ hơn về xu hướng và phân phối dữ liệu. 
o sklearn (Scikit-learn): Thư viện học máy với các công cụ để phân chia dữ 
liệu, xây dựng và đánh giá mô hình, bao gồm các mô hình hồi quy và phân  loại. 
o pickle: Được sử dụng để lưu trữ và tải lại các mô hình đã huấn luyện hoặc các  đối tượng Python khác. 
o imblearn: Bộ mở rộng của Scikit-learn để xử lý dữ liệu mất cân bằng 
(imbalanced data), hỗ trợ các kỹ thuật như SMOTE (Synthetic Minority Over-
sampling Technique) để cải thiện hiệu suất của mô hình trong các trường hợp  dữ liệu lệch.      lOMoAR cPSD| 58800262
o lime: Công cụ giải thích kết quả mô hình học máy( Local Interpretable Model-
agnostic Explanations), giúp làm sáng tỏ các quyết định của mô hình, đặc biệt 
quan trọng khi xử lý các mô hình "hộp đen" như Random Forest hoặc Gradient  Boosting )  1.5 LEARNING MODEL 
1.5.1 Mô hình đơn lẻ 
1.5.1.1 Mô hình Logistic 
Mô hình hồi quy logistic là một kỹ thuật học máy được sử dụng để dự đoán khả 
năng xảy ra của một biến nhị phân (binary), tức là biến mục tiêu chỉ có hai trạng thái (ví 
dụ như "có/không", "đúng/sai", "churn/không churn"). Mặc dù có tên gọi là "hồi quy", 
mô hình này chủ yếu được sử dụng cho các bài toán phân loại. 
Mục tiêu chính của hồi quy logistic là dự đoán xác suất xảy ra của một biến phụ 
thuộc nhị phân. Ví dụ, trong bài toán churn, mô hình dự đoán xác suất khách hàng có khả 
năng rời bỏ dịch vụ (churn = 1) hay không (churn = 0).   
* Tiền xử lí dữ liệu     •  M
ục đích: Loại bỏ tấy cả các hàng có giá trị thiếu (null) trong DataFrame df      lOMoAR cPSD| 58800262 •  L
ý do: Các giá trị thiếu có thể gây ra lỗi hoặc làm giảm hiệu suất của mô hình. Việc loại bỏ 
chúng giúp đảm bảo dữ liệu sạch và sẵn sàng cho việc huấn luyên mô hình * Hàm 
prepare_model_smote Import thư viện:    •  t
rain_test_split từ sklearn.model_selection: Chia dữ liệu thành tập huấn luyện và kiểm tra.  •  n
umpy: Xử lý các thao tác số học.  •  S
MOTE từ imblearn.over_sampling: Kỹ thuật tăng cường dữ liệu cho lớp thiểu số.  - Chọn các cột số:    • 
Lấy danh sách từ các cột trong DataFrame. 
- Tách biến độc lập (X)    • 
Lấy các cột số, loại bỏ cột mục tiêu class_col và các cột cần loại trừ cols_to_exclude 
(ví dụ: 'customer_id', 'phone_no', 'year'). 
- Tách biến mục tiêu (y)    - Chia dữ liệu    • 
Chia dữ liệu thành 70% huấn luyện và 30% kiểm tra.  • 
Sử dụng random_state=0 để đảm bảo khả năng tái lập kết quả.  - Áp dụng SMOTE    • 
sampling_strategy=1.0: Cân bằng tỷ lệ giữa các lớp (cả lớp đa số và lớp thiểu số đều 
có số lượng bằng nhau sau SMOTE).  • 
fit_resample tạo ra các mẫu nhân tạo cho lớp thiểu số để cân bằng dữ liệu.  * Hàm run_model  - Import thư viện    •  L
ogisticRegression từ sklearn.linear_model: Mô hình hồi quy logistic.      lOMoAR cPSD| 58800262 •  r
oc_auc_score, classification_report từ sklearn.metrics: Các chỉ số đánh giá mô hình. 
- Định nghĩa Mô hình Logistic Regression    •  K
hởi tạo mô hình với random_state=13 để đảm bảo tính tái lập.  •  H
uấn luyện mô hình trên tập dữ liệu huấn luyện (X_train, y_train).  - Dự đoán và đánh giá    •  D
ự đoán giá trị y cho tập kiểm tra (X_test).  •  T
ính toán điểm ROC AUC để đánh giá khả năng phân biệt giữa các lớp. - In kết quả    •  I
n báo cáo phân loại bao gồm precision, recall, f1-score cho từng lớp.  •  I n điểm ROC AUC.  * Chạy quy trình    • 
Xóa Giá Trị Thiếu: Đã thực hiện ở đầu.  • 
Chuẩn Bị Dữ Liệu với SMOTE: Gọi hàm prepare_model_smote để chuẩn bị dữ liệu 
cân bằng. Chạy Mô Hình và Đánh Giá: Gọi hàm run_model để huấn luyện và đánh  giá mô hình.  Kết quả đầu ra   
- Precision, Recall, F1-Score:  • 
Precision (Độ Chính Xác): Tỷ lệ dự đoán đúng trong tổng số dự đoán cho lớp đó.      lOMoAR cPSD| 58800262
o Lớp 0.0: 0.94 (Rất cao, nghĩa là hầu hết các dự đoán lớp 0.0 đều chính xác). 
o Lớp 1.0: 0.19 (Rất thấp, nghĩa là nhiều dự đoán lớp 1.0 không chính xác).  • 
Recall (Độ Nhạy): Tỷ lệ các mẫu thực sự thuộc lớp đó được mô hình phát hiện. 
o Lớp 0.0: 0.65 (65% các mẫu lớp 0.0 được phát hiện). 
o Lớp 1.0: 0.67 (67% các mẫu lớp 1.0 được phát hiện).  • 
F1-Score: Trung bình điều hòa giữa precision và recall. 
o Lớp 0.0: 0.77 o Lớp 1.0: 0.29 
- Accuracy (Độ Chính Xác Tổng Thể): 0.65  • 
Tỷ lệ chính xác tổng thể của mô hình trên toàn bộ dữ liệu kiểm tra. 
- Macro Avg (Trung Bình Cộng Đồng):  • 
Trung bình của các chỉ số (precision, recall, f1-score) của từng lớp mà không tính  trọng số. 
- Weighted Avg (Trung Bình Có Trọng Số):  • 
Trung bình các chỉ số của từng lớp, có trọng số theo số lượng mẫu trong từng lớp. 
- ROC AUC (Area Under the Curve): 0.66  • 
Đo lường khả năng phân biệt giữa các lớp của mô hình. Giá trị 0.66 cho thấy mô hình 
có khả năng phân biệt tốt hơn ngẫu nhiên (0.5), nhưng vẫn còn không cao. 
1.5.1.2 Mô hình Decision Tree 
1.5.2 Mô hình Ensemble 
Các phương pháp Ensemble kết hợp nhiều mô hình học máy để cải thiện hiệu suất tổng thể, 
giảm phương sai và tạo ra các mô hình dự đoán ổn định hơn. Trong số các mô hình ensemble 
được sử dụng rộng rãi nhất là Random Forest, AdaBoost, và Gradient Boosting, cả ba đều thể 
hiện sự cải thiện đáng kể so với các mô hình đơn lẻ như cây quyết định.         
Figure 2: Ensemble model in maching learning  Xây dựng mô hình  1. Chia tâp ḍ  ữ  liêu hụ  ấn  luyên ṿ  à  kiểm tra      lOMoAR cPSD| 58800262
Để đánh giá mô hình một cách đáng tin cậy, tập dữ liệu được chia thành tập huấn luyện và 
tập kiểm tra. Thông thường, ta sử dụng tỷ lệ chia 80/20 hoặc 70/30 để đảm bảo rằng mô 
hình có đủ dữ liệu để huấn luyện mà vẫn còn lại đủ dữ liệu để kiểm tra khả năng tổng quát  hoá của nó.   
Figure 3: Training set v Testing set trong Machine learningà  2. Mô hình Random Forest 
Random Forest là một kỹ thuật ensemble xây dựng nhiều cây quyết định và kết hợp chúng 
để đạt được dự đoán chính xác và ổn định hơn. Nó giúp giảm tình trạng quá khớp, điều 
phổ biến trong các cây quyết định đơn lẻ.   
Figure 4: M hnh random forestsô ì 
Kết quả: Mô hình Random Forest thường mạnh mẽ và có thể xử lý cả bài toán phân loại 
và hồi quy. Ví dụ, sử dụng Random Forest Classifier có thể đạt độ chính xác khoảng 85-
90%, vượt trội hơn so với mô hình cây quyết định đơn giản vốn có thể mắc lỗi do phương  sai cao.  3. Mô hình AdaBoost 
AdaBoost, hay Adaptive Boosting, hoạt động bằng cách tạo ra một loạt các mô hình yếu 
(thường là cây quyết định nông), mỗi mô hình tập trung nhiều hơn vào các mẫu mà các 
mô hình trước đã phân loại sai      lOMoAR cPSD| 58800262  
Figure 5: M hnh AdaBoostô ì 
Kết quả: AdaBoost có xu hướng hoạt động tốt hơn trên các tập dữ liệu nhỏ và sạch, đạt độ 
chính xác khoảng 80-85% cho nhiều bài toán phân loại, mặc dù nó có thể nhạy cảm với  nhiễu trong dữ liệu. 
4. Mô hình Gradient Boosting 
Gradient Boosting hoạt động tương tự như AdaBoost nhưng xây dựng các cây quyết định một 
cách tuần tự sao cho mỗi cây mới khắc phục lỗi của các cây trước đó bằng cách sử dụng 
gradient của hàm mất mát. 
 Kết quả: Gradient Boosting thường mang lại độ chính xác cao hơn so với AdaBoost và 
Random Forest, đặc biệt trên các tập dữ liệu lớn với các mẫu phức tạp, đạt 85-95% độ chính 
xác. Tuy nhiên, nó yêu cầu tính toán nhiều hơn và dễ bị quá khớp nếu không được điều chỉnh  đúng cách 
 Hiêu suất của c ̣ ác mô hình Ensemble trên tâp dữ liệu ̣ 
 Trong bảng dưới đây, trục dọc biểu diễn tỷ lệ chính xác, trong khi trục ngang hiển thị các 
mô hình khác nhau được kiểm tra. Gradient Boosting cho thấy độ chính xác cao nhất trong số 
ba mô hình, theo sau là Random Forest và AdaBoost.   
Figure 6: M hnh Gradient Boostingô ì        lOMoAR cPSD| 58800262
3. Phương pháp tiếp cân ̣ 
Quá trình phát triển mô hình dự đoán churn của khách hàng dựa trên các bước tiếp cận cụ thể, 
bao gồm việc xử lý dữ liệu, xây dựng mô hình, đánh giá và cải thiện hiệu suất. Các bước thực  hiện cụ thể như sau: 
1. Nhập thư viện và đọc tập dữ liệu (Importing Libraries & Reading Dataset)  • 
Đầu tiên, chúng tôi tiến hành nhập các thư viện cần thiết như NumPy, pandas, 
matplotlib, và sklearn, cũng như các thư viện bổ trợ khác để hỗ trợ trong quá trình xử 
lý dữ liệu và xây dựng mô hình.  • 
Sau đó, dữ liệu từ tệp "data_regression.csv" được đọc vào để chuẩn bị cho các bước  tiếp theo. 
2. Xử lý đặc trưng (Feature Engineering)  • 
Loại bỏ các cột không cần thiết: Các cột không đóng góp nhiều cho quá trình dự 
đoán hoặc gây nhiễu cho mô hình sẽ bị loại bỏ. Điều này giúp đơn giản hóa mô hình 
và cải thiện hiệu suất.  • 
Ví dụ: Các cột như customer_id, phone_no có thể không liên quan trực tiếp đến dự 
đoán churn nên sẽ bị loại bỏ. 
3. Xây dựng mô hình (Model Building)  • 
Chia dữ liệu thành tập huấn luyện và kiểm tra (Train-Test Split): Dữ liệu được 
chia thành hai phần, một phần dành cho huấn luyện mô hình và một phần dùng để 
kiểm tra hiệu suất của mô hình. Tỷ lệ thường được sử dụng là 80% dữ liệu cho huấn 
luyện và 20% dữ liệu cho kiểm tra. 
Triển khai các mô hình học máy:  • 
Random Forest Model: Một mô hình ensemble xây dựng dựa trên nhiều cây quyết  định.  • 
AdaBoost Model: Một mô hình boosting tạo ra các mô hình yếu và liên tục cải thiện  hiệu suất.  • 
Gradient Boosting Model: Mô hình gradient boosting giúp tối ưu hóa việc dự đoán  qua nhiều bước. 
4. Đánh giá mô hình (Model Validation) 
 Để đánh giá hiệu suất của mô hình, chúng tôi sử dụng các chỉ số đo lường quan trọng  bao gồm: 
o Recall: Đo lường khả năng của mô hình trong việc phát hiện các trường hợp  churn thực sự. 
o Precision: Đo lường mức độ chính xác của các dự đoán churn. o F1-score: 
Một thước đo cân bằng giữa precision và recall. 
o ROC & AUC: Đường cong ROC và diện tích dưới đường cong AUC giúp 
đánh giá khả năng phân loại của mô hình. 
5. Tầm quan trọng của đặc trưng (Feature Importance)  • 
Một hàm được xây dựng để xác định và trực quan hóa các đặc trưng quan trọng ảnh 
hưởng đến dự đoán churn.  • 
Sau đó, biểu đồ thể hiện tầm quan trọng của các đặc trưng sẽ được vẽ để có cái nhìn 
trực quan về các yếu tố ảnh hưởng nhiều nhất.      lOMoAR cPSD| 58800262
6. Triển khai LIME (LIME Implementation) 
 LIME (Local Interpretable Model-agnostic Explanations) được triển khai để giải 
thích quyết định của mô hình trên các dự đoán cụ thể, nhằm làm sáng tỏ mô hình "hộp 
đen". Chúng tôi xây dựng một hàm để áp dụng LIME lên tập dữ liệu và kiểm tra các 
quyết định của mô hình.  4.1 INPUT 
Giữ vai trò quan trọng trong quá trình phân tích dữ liệu. Nó chứa tất cả dữ liệu cần thiết để 
thực hiện các bước tiếp theo trong mô hình dự đoán churn. 
• Data_regression.csv: 
o Tệp này chứa thông tin chi tiết về khách hàng của một dịch vụ video 
streaming, bao gồm nhiều biến khác nhau liên quan đến hành vi sử dụng dịch 
vụ và các yếu tố có thể ảnh hưởng đến việc khách hàng có quyết định rời bỏ 
dịch vụ hay không (churn). 
o Các cột trong tệp Data_regression.csv: 
▪ year: Năm mà dữ liệu được ghi lại. 
▪ customer_id: Mã định danh duy nhất của mỗi khách hàng. 
▪ phone_no: Số điện thoại của khách hàng. 
▪ gender: Giới tính của khách hàng (Nam, Nữ). 
▪ age: Độ tuổi của khách hàng. 
▪ no_of_days_subscribed: Số ngày mà khách hàng đã đăng ký dịch vụ. 
▪ multi_screen: Thông tin về việc khách hàng có sử dụng nhiều màn  hình hay không. 
▪ mail_subscribed: Thông tin về việc khách hàng có đăng ký nhận email  hay không. 
▪ weekly_mins_watched: Số phút trung bình mà khách hàng xem video  mỗi tuần. 
▪ minimum_daily_mins: Số phút xem video ít nhất mỗi ngày. 
▪ maximum_daily_mins: Số phút xem video nhiều nhất mỗi ngày. 
▪ weekly_max_night_mins: Số phút tối đa mà khách hàng xem video 
vào buổi tối mỗi tuần. 
▪ videos_watched: Tổng số video mà khách hàng đã xem. 
▪ maximum_days_inactive: Số ngày tối đa mà khách hàng không hoạt  động. 
▪ customer_support_calls: Số cuộc gọi hỗ trợ mà khách hàng đã thực  hiện. 
▪ churn: Chỉ số liệu mà khách hàng có quyết định rời bỏ dịch vụ hay  không (1: có, 0: không). 
• Mục tiêu của tệp dữ liệu: Mục đích chính của việc phân tích tệp 
Data_regression.csv là để xây dựng một mô hình học máy có khả năng dự đoán xác 
suất churn của khách hàng dựa trên các yếu tố được nêu ở trên. Bằng cách phân tích 
và xử lý dữ liệu trong tệp này, chúng tôi có thể phát hiện ra các mẫu và xu hướng 
hành vi của khách hàng, từ đó đưa ra những dự đoán chính xác hơn về khả năng 
khách hàng sẽ rời bỏ dịch vụ.  4.2 THE OUTPUT 
Đóng vai trò quan trọng trong việc lưu trữ tất cả các kết quả từ quá trình phân tích và xây 
dựng mô hình. Trong phần này này, chúng tôi tổ chức thông tin thành ba mục con, mỗi mục 
chứa các loại kết quả khác nhau, giúp dễ dàng quản lý và tra cứu.      lOMoAR cPSD| 58800262
Nội dung của các thư mục con:  •  LIME_reports: 
o Thư mục này chứa các báo cáo được tạo ra từ phương pháp giải thích mô hình 
LIME (Local Interpretable Model-agnostic Explanations). LIME là một kỹ 
thuật mạnh mẽ giúp chúng tôi hiểu rõ hơn về các quyết định mà mô hình đưa 
ra bằng cách giải thích từng dự đoán cụ thể. 
o Mỗi báo cáo trong thư mục này cung cấp thông tin chi tiết về các đặc trưng 
quan trọng đã ảnh hưởng đến dự đoán, cũng như mức độ ảnh hưởng của 
chúng. Điều này giúp chúng tôi đánh giá được tính hợp lý của các dự đoán và 
cải thiện mô hình nếu cần. 
o Ví dụ, báo cáo có thể bao gồm các biểu đồ trực quan hóa mức độ quan trọng 
của từng đặc trưng đối với một khách hàng cụ thể, giúp đưa ra cái nhìn sâu sắc 
về hành vi của khách hàng.  •  Models: 
o Thư mục này lưu trữ tất cả các mô hình học máy đã được xây dựng cho cả ba 
thuật toán (Random Forest, AdaBoost, và Gradient Boosting). Mỗi mô hình sẽ 
được lưu dưới dạng tệp để có thể tái sử dụng trong tương lai mà không cần 
phải huấn luyện lại từ đầu. 
o Việc lưu trữ mô hình cho phép chúng tôi nhanh chóng triển khai mô hình vào 
môi trường thực tế để dự đoán churn của khách hàng mới mà không cần qua 
quy trình huấn luyện tốn thời gian. 
o Mỗi tệp mô hình có thể bao gồm thông tin chi tiết về cấu hình của mô hình, độ 
chính xác đạt được trên tập kiểm tra, cũng như các tham số mà chúng tôi đã sử 
dụng trong quá trình huấn luyện.  •  ROC_curves: 
o Thư mục này chứa các hình ảnh và dữ liệu liên quan đến đường cong ROC 
(Receiver Operating Characteristic) được tạo ra cho cả ba thuật toán. Đường 
cong ROC là một công cụ hữu ích để đánh giá hiệu suất của mô hình phân 
loại, cho phép chúng tôi thấy được sự cân bằng giữa tỷ lệ dương tính thực tế 
(True Positive Rate) và tỷ lệ dương tính giả (False Positive Rate). 
o Mỗi tệp trong thư mục này sẽ cung cấp biểu đồ ROC cho từng mô hình cùng 
với giá trị AUC (Area Under Curve), giúp chúng tôi so sánh hiệu suất của các 
mô hình khác nhau một cách trực quan. o Việc có các đường cong ROC này 
cho phép chúng tôi nhanh chóng nhận diện mô hình nào hoạt động tốt hơn 
trong việc phân loại khách hàng có khả năng churn, từ đó đưa ra quyết định 
hợp lý cho chiến lược kinh doanh.        lOMoAR cPSD| 58800262
1.5  LEARNING MODEL  
Contributions made by each team member  DELIVERABLES/ TASKS  PIC  Tran Kim Khoi  Le Minh Triet 
● Project Report ( .pdf file)  Nguyen Thi Tuyet Nhung  Ly Le Minh 
● Link of GitHub for accessing the uploaded project code  Ly Le Minh  ( Public access )  Nguyen Thi Tuyet Nhung  □ Source code  Ly Le Minh  Nguyen Thi Tuyet Nhung  □ Trained Model (.h5 file)  Ly Le Minh  Nguyen Thi Tuyet Nhung  Tran Kim Khoi 
□ Test Data Used in the Project  Ly Le Minh  Le Minh Triet  □ File ReadMe.doc  Ly Le Minh 
● Link of Published Blog  Tran Kim Khoi  Tran Kim Khoi  □ Problem Definition  Le Minh Triet  Le Minh Triet  □ Design Specifications  Nguyen Thi Tuyet Nhung  □ User Flow Diagram  Tran Kim Khoi 
□ Project Installation Instructions  Ly Le Minh  Ly Le Minh  Le Minh Triet 
□ Detailed Steps to Execute the Project  Nguyen Thi Tuyet Nhung 
●  Link Youtube video and an .mp4 file demonstrating the working  Ly 
Le Minh of the application, including all the functionalities of the project.  Le  Minh Triet  Page 14/27