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.. Mô hình này giúp doanh ng
Trang 1ĐỀ TÀI NHẬP MÔN TRÍ TUỆ NHÂN TẠO
NHÓM 7
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
Lecturer: MSc Hồ Nhựt Minh
Trang 2TABLE 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 Software 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
5.6.2 Evaluate Model 19
5.7 Deploy Model (via application) 19
Page 2/27
Trang 36 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
9 FURTHER IMPROVEMENT 25
9.1 Limitations 25
9.2 Improvement 26
CONTRIBUTIONS 27
Page 3/27
Trang 4Nghiê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ợ
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
Trang 51.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
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.
Trang 612 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
2 TECHNOLOGY R
E
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
Figure 1: Data regression
Trang 7 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
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)
Trang 8* 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
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:
train_test_split từ sklearn.model_selection: Chia dữ liệu thành tập huấn luyện và kiểm tra
numpy: Xử lý các thao tác số học
SMOTE 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
Trang 9- 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
LogisticRegression từ sklearn.linear_model: Mô hình hồi quy logistic
roc_auc_score, classification_report từ sklearn.metrics: Các chỉ số đánh giá mô hình
- Định nghĩa Mô hình Logistic Regression
Khởi tạo mô hình với random_state=13 để đảm bảo tính tái lập
Huấ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ả
Trang 10 In báo cáo phân loại bao gồm precision, recall, f1-score cho từng lớp.
* 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 đó
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
Trang 11- 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
Xây dựng mô hình
1 Chia tâ ̣p dữ liê ̣u huấn luyê ̣n và kiểm tra
Để đá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ó
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 2: Ensemble model in maching learning
Figure 3: Training set v Testing set trong Machine learningà
Trang 12Kế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
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
Figure 4: M h nh random forestsô ì
Figure 5: M h nh AdaBoostô ì
Trang 13Gradient 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 h nh Gradient Boostingô ì
Trang 143 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
6 Triển khai LIME (LIME Implementation)