1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài nhập môn trí tuệ nhân tạo nhóm 7 build a churn prediction model using esemble learning

18 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Build a churn prediction model using esemble learning
Tác giả Phạm Tiến Phúc Hưng, Nguyễn Quốc Bình, Bun Minh Duc, Nguyễn Thành Thắng, Dương Đức Phúc, Hoàng Trọng Quyền, Tran Tiến Dat
Người hướng dẫn MSc. Hé Nhut Minh
Trường học Unknown University
Chuyên ngành Artificial Intelligence
Thể loại Đề tài
Năm xuất bản 2023
Thành phố Unknown City
Định dạng
Số trang 18
Dung lượng 3,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Nhom 7 — team members:

‹ Phạm Tiến Phúc Hưng

° _ Nguyễn Quốc Bình

° Bun Minh Duc

° Nguyễn Thành Thắng

° Dương Đức Phúc

° _ Hoàng Trọng Quyền

¢ Tran Tiến Dat Lecturer: MSc Hé Nhut Minh

Trang 2

TABLE OF CONTENTS

1.1 Overview of the project

1.2 Objectives and goals

1.3 Background and context

1.3.1 Learning Models

1.3.2 Dataset Description

2 TECHNOLOGY REQUIREMENTS

2.1 Hardware Cent

2.2 Software _

3.1 Model Selection _

3.2 EfficientNet-B0 Architecture Overview _ _

3.2.1 The EfficientNet-B0 network _ _

4.4 Transfer Learning Approach _

5.2 Data Preprocessing

5.3 Dataset Splitting

5.4 Model Training (Computing on Colab)

5.5 Push Data and Model to DBES - Databrick _

5.5.1 Cluster Creation _

5.5.2 Running Code and Tasks

5.6 Test and Evaluate Model _

5.6.1 Test Model _

5.6.2 Evaluate Model _

19

5.7 Deploy Model (via application)

Page 2/27

Trang 3

6 IMPLEMENTATION 19

6.3 Any challenges faced during implementation and how they were addressed .s sss000 22

7.1 DETAILS ABOUT THE TESTING PROCESS 22

7.3 Any issues encountered during testing and their resolution 24

8.1 Instructions on how to install and run the software 25

Page 3/27

Trang 4

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 hoc 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 qua, nang cao sy trung thanh va giam ty 1é roi bo | RODUCTION

Mô hình dự đoán tỷ lệ rời bo (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ợ

kở ject a Building a Churn Predicti:

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 đữ 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 5

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

Customer Churn

Cy ProjectPro

1.3 DATASET DESCRIPTION

1.3.1 N6 Of: dung vP cQu trRe

Dataset "data_regression.csv" chita thong tin vé mét céng ty cung cap 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 đữ 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 Da Oc diWm cXa dYulié O

Tập dữ liệu có 16 cột với các thong tin về nhân khâu học, hành vi sử đụ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 đữ liệu

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)

phone no: Số điện thoại của khách hàng

gender: Giới tính của khách hàng (Male/Female)

ch agc: Tuôi của khách hàng

no_of days_subseribed: Số ngày khách hàng đã đăng ký sử dụng dịch vụ

multi_screen: Khách hàng có sử dụng dịch vụ trên nhiều màn hình (Yes/No)

mail_subscribed: Khach hang có đăng ký nhận email thông bao (Yes/No)

9 wcekly miỉns _watched: Số phút trung bình khách hàng xem nội dung trong một tuần

10 minimum_daily_mins: S6 phut í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 6

12 weekly max_night mỉns: 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_inactfive: 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ỏ, | -

Rời bỏ)

1.3.3 Da Oc diWm cXa d Yulié O

Tập dữ liệu bao gồm khoảng 2000 hPng (đại diện cho 2000 khách hàng) và 16 cột Các cột cung cấp thông tin chỉ 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 cXa dY liêO

Với 2000 hPng, 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

Figure 1: Data regression 1.4 TECH TASK

Trong quá trinh xay dung va phat trién m6 hinh dy doan, nhom em sit dung cac công cụ và thư viện từ Python dé hé tro phân tích đữ liệu, xử lý dữ liệu và xây đựng mô hình học máy Các thành phần kỹ thuật chính bao gồm:

e Ngon ngyY 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 đữ liệu và hỗ trợ cho các thư viện học máy

Trang 7

e 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 đữ liệu

số

o_ pandas: Công cụ chính đê xử lý và thao tác đữ liệu dạng bảng (DataFrame), hỗ trợ đọc,

lọc và biến đôi đữ liệu

o_ mafplotlib: Thư viện trực quan hóa đữ 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 (Scikif-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: Duge str dung dé luu 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 dé xử lý dữ liệu mất cân bang (imbalanced data),

hỗ trợ các kỹ thuật như SMOTE (Synthetic Minority Over-sampling Technique) dé cai 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 cu giai thich 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ô hinh Logistic

Mô hình hồi quy logistic la mét kỹ thuật học máy được sử dụng dé 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

Logistics Model woo rv ots

def prepare_model_smote(df,class_col,cols_to_exclude):

#Synthetic Minority Oversampling Technique Generates new instances from existing minority cases that you supply as input

from sklearn.model_selection import train_test_split

from imblearn.over_sampling import SMOTE

cols=df.select_dtypes(include=np.number).columns.tolist()

X=df[cols

y=df[class_col]

global X_train, X_test, y_train, y_test

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random state=0)

sm = SMOTE(random_state=0, sampling_strategy=1.0)

X_train, y_train = sm.fit_resample(X_train, y_train)

def run_model(X_train,X_test,y_train,y_test):

from sklearn.linear_model import LogisticRegression

from sklearn.metrics import roc_auc_score,classification_report

global logreg #Defines the Logistic model as a global model that can be used outside of this function

##Fitting the Logistic regression

logreg = LogisticRegression(random_state = 13)

logreg.fit(X_train, y_train)

##Predicting y values

global y_pred #Defines the Y_Pred as a global variable that can be used outside of this function

y_pred = logreg.predict(X_test)

logit_roc_auc = roc_auc_score(y_test, logreg.predict(X_test))

print(classification_report(y_test, y_pred))

print("The area under the curve is: %0.2f"%logit_roc_auc)

df = df.dropna() # cleaning up nuLl values

prepare_model_smote(df,class_col = ‘churn',cols_to_exclude=[ 'customer_id',*phone_no', 'year"])

# run the Logistics regression model and evaluate the results

* 'Tiên xử lí dữ liệu

df = df.dropna() # cLeaning up nuLL vaLues

« - Mục đích: Loại bỏ tây cả các hàng có giá trị thiêu (null) trong DataFrame df

e Ly do: Cac gia 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:

from sklearn.model_selection import train_test_split

import numpy as np

from imblearn.over_sampling import SMOTE

« train_test_split tir skleam.model_selection: Chia dit ligu thành tập huấn luyện và kiểm tra

« - SMOTE từ immblearn.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ố:

cols=df.select_dtypes (inc1ude=np number) co1umns to1ist()

° Lấy danh sách từ các cột trong DataFrame

Trang 9

- Tach bién độc lập (X)

X = X[X.columns.difference([class_co1]) ]

X = X[X.columns.difference(cols_to_exclude) ]

e Lay cac cét so, loại bỏ cột muc tiéu class_col va cac cot can loai tir cols_to_exclude (vi du:

‘customer_id', 'phone_no’, 'year')

- Tach bién muc tiéu (y)

y=df[class_co1l]

- Chia dữ liệu

global X_train, X test, y_train, y test

X train, X test, y_train, y_test = train test_split(X, y, test size=9.3, random_state=0)

« _ Chia dữ liệu thành 70% huấn luyện và 30% kiểm tra _

e Sử dụngrandom_state=0 đề đảm bảo khả năng tái lập kết quả

- Áp dụng SMOTE

sm = SMOTE(random_state=8, sampling _strategy=1.0)

X_train, y_train = sm.fit_resample(X_train, y_train)

« sampling strategy=1.0: Can bang ty 1é gitta cac lớp (cả lớp đa số và lớp thiêu số đều có số lượng bằng

« _ ft 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

from sklearn.linear_model import LogisticRegression

from sklearn.metrics import roc_auc_score,classification_report

¢ LogisticRegression từ sklearn.linear model: Mô hình hồi quy logistic

e roc_auc_ score, classification_report tir sklearn.metrics: Cac chi so danh gia m6 hinh

- Dinh nghia M6 hinh Logistic Regression

logreg = LogisticRegression(random_state = 13)

logreg.fit(X train, y train)

¢ Khdi tao m6 hinh voi random _state=13 dé dam bao tinh tai lap

e Huan luyén m6 hinh trén tap dir ligu huan luyén (X_train, y_train)

- Dy doan va danh gia

y_pred = logreg.predict(X_test)

logit_roc_auc = roc_auc_score(y_test, logreg.predict(X_test) )

¢ Du doan gia trị y cho tập kiém tra (X_test)

e« - Tính toán điểm ROC AUC đề đánh gia kha năng phân biệt giữa các lớp

- In kết quả

Trang 10

print(”The area under the curve is: %@.2f"%logit_roc_auc)

« In báo cáo phân loại bao gom precision, recall, fl-score cho từng lớp

e Indiém ROC AUC

* Chay quy trinh

prepare_model_smote(df,class_col = 'churn',cols_to_exclude=[ 'customer_id' ; 'phone_no', ‘year'])

# run the Logistics regression model and evaluate the results

run_model(X_train,X_test,y_train,y_test)

° Xóa Giá Trị Thiếu: Đã thực hiện ở đầu ; ;

¢ Chuan Bi Dir Ligu voi SMOTE: Goi ham prepare_model_smote dé chuan bi dit ligu cân băng

e Chay M6 Hinh va Danh Gia: Goi ham run_model dé huan luyén và đánh giá mô hình

Ket qua dau ra

precision recall fl-score support

The area under the curve is: 9.66

- Precision, Recall, F1-Score:

¢ Precision (Dé Chinh Xac): Ty 1é du doan dung trong téng s6 dir doan cho lép do

o Lép 0.0: 0.94 (Rat cao, nghia 1a hau hét cac dy doan Idp 0.0 déu chính xác)

o Lép 1.0: 0.19 (Rat thap, nghia 1a nhiéu dy doan lớp 1.0 không chính xác)

e Recall (D6 Nhay): Ty lé cac mẫu thực sự thuộc lớp đó được mô hình phát hiện

e_ Lớp 0.0: 0.65 (65% các mẫu lớp 0.0 được phát hiện)

e_ Lớp L0: 0.67 (67% các mẫu lớp 1.0 được phát hiện)

« Fl-Score: Trung bình điều hòa giữa precision va recall

o Lép 0.0: 0.77

o Lép 1.0: 0.29

- Accuracy (D6 Chinh Xac Tong 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, fl-score) của từng lớp mà không tinh 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

Ngày đăng: 18/02/2025, 16:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm