You are on page 1of 28

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH

TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ



ĐỒ ÁN MÔN HỌC
ĐỀ TÀI:
PHÂN TÍCH DỮ LIỆU HÀNH VI KHÁCH HÀNG DỰA TRÊN BỘ
DỮ LIỆU CUSTOMER BEHAVIOR BẰNG PHẦN MỀM ORANGE

Học phần: Khoa Học Dữ Liệu


Nhóm Sinh Viên:
1. NGUYỄN THỊ HỒNG NGÂN
2. NGUYỄN QUỐC HUY
Chuyên Ngành: QUẢN LÝ CÔNG
Khóa: K46

Giảng Viên: TS. Đặng Ngọc Hoàng Thành

TP. Hồ Chí Minh, Ngày 27 tháng 05 năm 2022


MỤC LỤC

MỤC LỤC ............................................................................................................................1

CHƯƠNG 1. TỔNG QUAN .............................................................................................. 2

1.1. Tổng Quan Về Bài Toán Phân Lớp Dữ Liệu ............................................................. 2

1.2. Giới Thiệu Về Python và Phần Mềm Orange ............................................................2

1.3. Lý Do Chọn Lựa Đề Tài .............................................................................................3

CHƯƠNG 2. CÁC MÔ HÌNH PHÂN LỚP DỮ LIỆU ...................................................4

2.1. Các Mô Hình Phân Lớp Dữ Liệu ............................................................................... 4

2.1.1. Mô Hình Logistic Regression ..............................................................................4

2.1.2. Mô Hình Decision Tree ....................................................................................... 6

2.1.3. Mô Hình Support Vector Machine ...................................................................... 7

2.1.4. Mô Hình Neural Network .................................................................................. 10

2.2. Quy Trình Phân Lớp Dữ Liệu .................................................................................. 11

2.2.1. Phân Chia Dữ Liệu .............................................................................................11

2.2.2. Phân Lớp Dữ Liệu ..............................................................................................13

2.2.3. Đánh Giá Tính Hiệu Quả ................................................................................... 14

CHƯƠNG 3. CÁC KẾT QUẢ THỰC NGHIỆM ..........................................................18

3.1. Bộ Dữ Liệu ............................................................................................................... 18

3.2. Các Kết Quả Thực Nghiệm ......................................................................................20

3.3. Phân Tích và Đánh Giá ............................................................................................ 22

CHƯƠNG 4. KẾT LUẬN ................................................................................................ 24

4.1. Các Kết Quả Đạt Được .............................................................................................24

4.2. Những Hạn Chế và Hướng Phát Triển .....................................................................26

TÀI LIỆU THAM KHẢO ................................................................................................27


1
CHƯƠNG 1. TỔNG QUAN

1.1. Tổng Quan Về Bài Toán Phân Lớp Dữ Liệu

Khoa học dữ liệu là khoa học nghiên cứu dữ liệu. Ngoài ra, khoa học dữ liệu cũng là một
công cụ lao động quan trọng trong kỷ nguyên chuyển đổi số.Vì vậy, từ quan điểm chuyên
môn, khoa học dữ liệu là một lĩnh vực nghiên cứu liên ngành vì nó tích hợp nhiều loại dữ
liệu từ các lĩnh vực chuyên môn khác nhau, từ khoa học máy tính và thống kê đến kiến
thức toán học. Về quy trình và hệ thống trích xuất kiến thức hoặc hiểu biết từ các dạng dữ
liệu khác nhau (có cấu trúc hoặc không có cấu trúc), nó là sự tiếp nối của một số lĩnh vực
phân tích dữ liệu, chẳng hạn như thống kê khoa học, khai thác dữ liệu, tương tự như khai
thác kiến thức từ cơ sở dữ liệu.

Trong khai phá dữ liệu thì bài toán phân lớp (classification) là thông dụng nhất
Phân lớp dữ liệu là quá trình phân một đối tượng dữ liệu vào một hay nhiều lớp (loại) đã
cho trước nhờ một mô hình phân lớp. Mô hình này được xây dựng dựa trên một tập dữ
liệu đã được gán nhãn trước đó ( thuộc về lớp nào ). Quá trình gán nhãn( thuộc lớp nào)
cho đối tượng dữ liệu chính là quá trình phân lớp dữ liệu.

1.2. Giới Thiệu Về Python và Phần Mềm Orange

Python là một trong những ngôn ngữ lập trình hướng đối tượng cấp cao. Ngôn ngữ
này được sử dụng để phát triển các ứng dụng và trang web khác nhau. Ngôn ngữ này
được tạo ra bởi Guido van Rossum vào đầu năm 1991, người đã phát triển nó trong một
dự án mở và đã trải qua ba phiên bản lớn là Python 1, Python 2 và Python 3, với nhiều
bản cập nhật nhỏ dần hoàn thiện chức năng và cú phá.
Do cấu trúc đơn giản và thanh lịch của nó, Python là sự lựa chọn hoàn hảo từ các chuyên
gia hàng đầu cho đến người mới bắt đầu. Ngôn ngữ này cũng được đánh giá cao về tính
chặt chẽ, sức mạnh và tốc độ, vì vậy nó tồn tại trong tất cả các hệ điều hành và được trở
thành ngôn ngữ phù hợp với các dự án về học máy hay trí tuệ nhân tạo (AI). Khi sử dụng
2
Python sẽ có nhiều thời gian nghiên cứu, giải quyết các bài toán, không phải rắc rối với
những kỹ thuật phức tạp của ngôn ngữ, cũng như dễ dàng làm việc nhóm hơn bởi các
dòng lệnh rất gần với đọc hiểu.

Phần mềm Orange được biết đến với việc tích hợp các công cụ khai thác dữ liệu và
máy học đơn giản, thông minh, mã nguồn mở và được lập trình bằng Python với giao diện
trực quan và tương tác đơn giản. Phần mềm có nhiều chức năng, từ phân tích dữ liệu đơn
giản đến phức tạp, tạo ra các biểu đồ đẹp và thú vị, đồng thời giúp người dùng thực hiện
khai thác dữ liệu và học máy dễ dàng hơn.

1.3. Lý Do Chọn Lựa Đề Tài

Cùng với sự phát triển của kinh tế thì nhu cầu của con người cũng ngày một được
tăng cao nhất là đối với các sản phẩm tiêu dùng hằng ngày. Các công ty đặt khách hàng là
trung tâm để dựa vào đó đưa doanh nghiệp phát triển phù hợp với thị hiếu người tiêu dùng.
Các phân khúc thị trường nhắm đến từng đối tượng khách hàng cần được lên kế hoạch và
chiến lược cụ thể để đạt được mục tiêu đề ra ban đầu. Chính vì lý do đó, nhóm chúng em
chọn đề tài này với mục đích sử dụng những thành tựu, ứng dụng của khoa học dữ liệu để
có thể phân tích, đánh giá một cách khách quan bài toán nan giải này cho các doanh
nghiệp về hành vi, sự lựa chọn của khách hàng hướng đến để có những chiến lược phát
triển phù hợp nhất.

3
CHƯƠNG 2. CÁC MÔ HÌNH PHÂN LỚP DỮ LIỆU

2.1. Các Mô Hình Phân Lớp Dữ Liệu

2.1.1. Mô Hình Logistic Regression

Định nghĩa: Là một mô hình xác suất dự đoán giá trị đầu ra rời rạc từ một tập các giá trị
đầu vào (biểu diễn dưới dạng vector).

Một ví dụ điển hình là phân loại Email, gồm có email công việc, email gia đình, email
spam, ... Giao dịch trực tuyến có là an toàn hay không an toàn, khối u lành tính hay ác
tình. Thuật toán trên dùng hàm sigmoid logistic để đưa ra đánh giá theo xác suất. Ví dụ:
Khối u này 80% là lành tính, giao dịch này 90% là gian lận, …

Mô tả: Đối với bài tập phân lớp:

Tập”nhãn y = {y1, y2, ... , yn} với n là số lớp.

Một đối tượng dữ liệu x = {x1, x2, ... , xd} với d


là số thuộc tính của mỗi dòng dữ liệu và được
biểu diễn dưới dạng vector.

Hàm logistic:

4
1
P(y=1) =
1+e−(w0+w1 x1+w2 x2 +…+wd xd )

dự đoán đối tượng xem đối tượng x sở hữu các thuộc tính cụ thể sẽ thuộc vào lớp y nào.”

Trong đó:
d là số lượng đặc trưng (thuộc tính) của dữ liệu.
w là trọng số, ban đầu sẽ được khởi tạo ngẫu nhiên, sau đó sẽ được điều chỉnh lại
cho phù hợp.

�=0

�= � � ��

1
� � = ������� � =
1 + �−�

Ví dụ: Xét bài toán phân lớp (nhị phân) phân lớp nguy cơ vỡ nợ trong tập khách hàng cá
nhân để giải quyết trong việc cho vay tiêu dùng:

 Biến phân lớp (biến phụ thuộc): y=1: vỡ nợ; y=0: không vỡ nợ.

 Biến độc lập x1, x2, ... , xd bao gồm: tuổi, học vấn, thu nhập, tài sản,...

1
Hàm logistic (sigmoid): P(y=1) = 1+e−(w0 +w1 x1 +w2 x2 +…+wd xd )
.

 Một ngưỡng t để phân lớp (nếu P(y) t thì phân vào lớp có thể vỡ nợ và ngược lại).

 Vấn đề: cần tìm bộ hệ số (trọng số): w0, w1, w2, ... , wd phù hợp để ước lượng.

 Bộ hệ số này sẽ được tính toán và điều chỉnh trong giai đoạn huấn luyện. Sau đó,
sẽ được sử dụng trong quá trình đánh giá mô hình và phân lớp dữ liệu mới.

5
2.1.2. Mô Hình Decision Tree

Định nghĩa:
- Trong lý thuyết quản trị, cây quyết định
là đồ thị các quyết định cùng các kết quả
khả dĩ đi kèm nhằm hỗ trợ quá trình ra
quyết định.
- Trong lĩnh vực khai thác dữ liệu, cây
quyết định là phương pháp nhằm mô tả,
phân loại và tổng hợp hóa tập dữ liệu cho
trước.”
Decision Tree là một phân cấp cấu trúc
được dùng để phân lớp các đối tượng dựa vào dãy các luật (Series of Rules). Các thuộc
tính của đối tượng (ngoại trừ thuộc tính phân lớp - Category attribute) có thể thuộc các
kiểu dữ liệu khác nhau (Binary, Nominal, ordinal, quantitative values) trong khi đó thuộc
tính phân lớp phải có kiểu dữ liệu Binary hoặc Ordinal.

Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes)
của nó, Decision Tree sẽ sinh ra các luật để dự đoán lớp của các dữ liệu chưa biết (unseen
data).
Decision Tree là một là một phương pháp phân lớp rất hiệu quả và dễ hiểu tuy nhiên có
một số chú ý trong quá trình sử dụng để xây dựng các mô hình phân lớp như sau:
Hiệu quả của phân lớp phụ thuộc rất lớn vào training data. Chẳng hạn Decision
Tree được tạo ra bởi chỉ giới hạn trong một ít samples training data thì hiệu quả ứng dụng
dự đoán các trường hợp là không cao (thường training data phải đủ lớn và tin cậy) và vì
vậy ta không thể nói rằng tập các luật (Series of Rules) được sinh ra bởi Decision Tree là
tập luật tốt nhất.

. Ưu khuyết điểm

Ưu điểm:

 Dễ hiểu.
6
 Không đòi hỏi việc chuẩn hóa dữ liệu.

 Có thể xử lý trên nhiều kiểu dữ liệu khác nhau.

 Xử lý tốt một lượng dữ liệu lớn trong thời gian nhắn.

Khuyết điểm:

 Khó giải quyết trong tình huống dữ liệu phụ thuộc thời gian.

 Chi phí xây dựng mô hình cao.

2.1.3. Mô Hình Support Vector Machine

SVM là một thuật toán phân loại nhị phân, nhận dữ liệu vào và phân loại chúng vào hai
lớp khác nhau.
SVM xây dựng (learn) một siêu phẳng (hyperplane) để phân lớp (classify) tập dữ liệu
thành hai lớp riêng biệt. Để làm được điều này SVM xây dựng một siêu phẳng hoặc một
tập hợp các siêu phẳng trong một không gian nhiều chiều hoặc vô hạn chiều, có thể được
sử dụng cho các phân loại, hồi quy. Để phân loại tốt thì cần phải xác định siêu phẳng
(Optimal hyperplane) nằm ở càng xa các điểm dữ liệu của tất cả các lớp (hàm lề) càng tốt
vì lề càng lớn thì sai số tổng quát hóa của thuật toán phân loại càng bé.
Một siêu phẳng là một hàm tương tự như phương trình đường thẳng y = ax + b
Nếu ta cần phân lớp dữ liệu chỉ gồm 2 feature thì siêu phẳng lúc này sẽ là một đường
thẳng.
SVM sử dụng thủ thuật để ánh xạ tập dữ liệu ban đầu vào không gian nhiều chiều hơn.
Khi đã ánh xạ sang không gian nhiều chiều, SVM sẽ xem xét và chọn ra siêu phẳng phù
hợp nhất để phân lớp tập dữ liệu đó.
Muốn các điểm dữ liệu có thể được chia tách một cách tuyến tính thì cần phải chọn hai
siêu phẳng của lề sao cho không có điểm nào giữa chúng và khoảng cách giữa chúng là
tối đa.
Trong nhiều trường hợp, không thể phân chia dữ liệu một cách tuyến tính trong một
không gian ban đầu được dùng để mô tả một vấn đề. Vì vậy nhiều khi cần phải ánh xạ các

7
điểm dữ liệu trong không gian ban đầu vào một không gian mới nhiều chiều hơn, để việc
phân tách chúng trở nên dễ dàng hơn trong không gian mới.

Một số khái niệm:

- Margin: là khoảng cách giữa siêu phẳng (trong


trường hợp không gian 2 chiều là đường thẳng)
đến 2 điểm dữ liệu gần nhất tương ứng với 2 phân
lớp.

SVM cố gắng tối ưu bằng cách tối đa hóa giá trị


margin này, từ đó tìm ra siêu phẳng đẹp nhất để
phân 2 lớp dữ liệu. Nhờ vây, SVM có thể giảm
thiểu việc phân lớp sai (misclassification) đối với
điểm dữ liệu mới đưa vào.

- Support Vectors: Bài toán của chúng ta trở thành tìm ra 2 đường biên của 2 lớp dữ liệu
sao cho khoảng cách giữa 2 đường này là lớn nhất. Siêu phẳng cách đều 2 biên đó chính
là siêu phẳng cần tìm.

Các điểm màu hồng nằm trên 2 đường biên (màu xanh nhạt) được gọi là các support
vector, vì chúng có nhiệm vụ hỗ trợ để tìm ra siêu phẳng (màu xanh đậm).

Ví dụ: Bài toán trong không gian hai chiều

y: là các lớp chứa các điểm dữ liệu xi. Ở ví dụ này y mang giá trị 1 và -1 (có 2 lớp).

xi: là một vector thực nhiều chiều đại diện cho một đối tượng dữ liệu cụ thể.

Giả sử 2 đường thẳng song song đi qua các


support vector của 2 lớp dữ liệu lần lượt là:

w1x1 + w2x2 + b = 1

w1x1 + w2x2 + b = -1
8
Viết gọn lại là: wx – b = 1 và wx – b = -1.

Trong đó:

w: là một vector pháp tuyến.

Khoảng cách giữa hai đường thẳng chính là margin = 2/ �21 + �22 .

Khi đó đường thẳng phân cách cần tìm: w1x1 + w2x2 + b = 0 hay wx – b = 0.

Tổng quát hóa trong không gian nhiều chiều

- Số”chiều của không gian bài toán (còn gọi là không gian đặc trưng) tương ứng với số
lượng thuộc tính (đặc trưng) của một đối tượng dữ liệu.

- Phương trình biểu diễn siêu phẳng cần tìm (hyperlane) trong không gian đa chiều là:
2|�� �+�| 2
�� � + � = 0 và giá trị margin = = .
‖�‖ ‖�‖

- Mục tiêu của SVM là cần tìm giá trị margin cực đại đồng nghĩa với việc ‖w‖ đạt cực
tiểu với điều kiện: �� �� �� + � ≥ 1, ∀� = 1,2, …, �.

- Hàm mục tiêu cần tối ưu là một norm nên là một hàm lồi => bài toán quy hoạch toàn
phương (Quadratic Programing).”

Các biến thể của SVM

Loại SVM Tính chất

Hai lớp cần phân lớp là có thể phân chia tuyến tính (linearly
Hard Margin SVM
seperable)

Hai lớp cần phân lớp là “gần” phân chia tuyến tính (almost
Soft Margin SVM
linear seperable)

Multi-class SVM Phân lớp đa lớp (biên giữa các lớp là tuyến tính)

Kernel SVM Dữ liệu là phi tuyến

9
Ưu điểm:

 Tiết kiệm bộ nhớ (do quá trình test chỉ cần so điểm dữ liệu mới với mặt siêu phẳng
tìm được mà không cần tính toán lại.

 Linh hoạt: vừa có thể phân lớp tuyến tính và phi tuyến (sử dụng các kernel khác
nhau).

 Xử lý được trong không gian nhiều chiều.

Nhược điểm:

 Trong trường hợp số chiều dữ liệu lớn hơn số dòng dữ liệu thì SVM cho kết quả
không tốt.

 Chưa thể hiện tính xác suất trong phân lớp.

2.1.4. Mô Hình Neural Network

Mạng Neuron nhân tạo (Artificial Neural Network - ANN) gọi tắt là Neural Network là
mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của
sinh vật, bao gồm số lượng lớn các Neuron được gắn kết để xử lý thông tin. ANN giống
10
như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng
lưu trữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự
đoán các dữ liệu chưa biết (unseen data).
Các ứng dụng của mạng Neuron được sử dụng trong rất nhiều lĩnh vực như điện, điện tử,
kinh tế, quân sự… để giải quyết các bài toán có độ phức tạp và đòi hỏi độ chính xác cao

như điều khiển tự động, khai phá dữ liệu, nhận dạng,...

2.2. Quy Trình Phân Lớp Dữ Liệu

2.2.1. Phân Chia Dữ Liệu

*Phương pháp Hold-out:


Phương pháp này phân chia tập dữ liệu ban đầu thành 2 tập độc lập theo một tỷ lệ nhất
định. Phương pháp này thường cho hiệu quả tốt trên các tập dữ liệu lớn còn đối với các
tập dữ liệu nhỏ hoặc vừa phải thì tính hiệu quả phụ thuộc vào cách chia cũng như tỷ lệ
chia dữ liệu.

11
*Phương pháp K-Fold
Phương pháp này phân chia dữ liệu thành k tập con có cùng kích thước (gọi là fold). Một
trong các fold được sử dụng làm tập đánh giá và phần còn lại được sử dụng làm tập huấn
luyện. Quá trình được lặp lại cho đến khi tất cả các fold đều được dùng làm tập dữ liệu
đánh giá. Phương pháp n=K-Fold thường được dùng nhiều hơn hand-out do mô hình sẽ
được huấn luyện và đánh giá trên nhiều phần dữ liệu khác nhau. Từ đó tăng độ tin cậy cho
độ đánh giá của mô hình.

12
2.2.2. Phân Lớp Dữ Liệu

Quá trình phân lớp dữ liệu gồm hai bước chính:


Bước 1:“Xây dựng mô hình (hay còn gọi là giai đoạn “học” hoặc “huấn luyện”)
- Dữ liệu đầu vào: là dữ liệu mẫu đã được gán nhãn và tiền xử lý.
- Các thuật toán phân lớp: cây quyết định, hàm số toán học, tập luật,...
- Kết quả của bước này là mô hình phân lớp đã được huấn luyện (trình phân lớp).”
Bước 2:“Sử dụng mô hình chia thành 2 bước nhỏ:
+ Bước 2.1: Đánh giá mô hình (kiểm tra tính đúng đắn của mô hình).
- Dữ liệu đầu vào: là một tập dữ liệu mẫu khác đã được gán nhãn và tiền xử
lý. Tuy nhiên lúc đưa vào mô hình phân lớp, ta “lờ” đi thuộc tính đã được gán nhãn.
- Tính đúng đắn của mô hình sẽ được xác định bằng cách so sánh thuộc tính
gán nhãn của dữ liệu đầu vào và kết quả phân lớp của mô hình.

+ Bước 2.2: Phân lớp dữ liệu mới.

13
- Dữ liệu đầu vào: là dữ liệu “khuyết” thuộc tính cần dự đoán lớp (nhãn).

- Mô hình sẽ tự động phân lớp (gán nhãn) cho các đối tượng dữ liệu này dựa
vào những gì được huấn luyện ở bước 1.

2.2.3. Đánh Giá Tính Hiệu Quả

Các phương pháp đánh giá mô hình phân lớp nhằm kiểm tra tính hiệu quả của mô hình
phân lớp trên dữ liệu có đặc thù cụ thể, từ đó quyết định có sử dụng mô hình đó hay
không.
Một mô hình lý tưởng là một mô hình không quá đơn giản, không quá phức tạp và không
quá nhạy cảm với nhiễu (tránh underfitted và overfitting).

Underfitting (chưa khớp):

- Mô hình được coi là chưa khớp nếu nó chưa được


phù hợp với tập dữ liệu huấn luyện và cả các mẫu
mới khi dự đoán.

- Nguyên nhân có thể là do mô hình chưa đủ độ phức


tạp cần thiết để bao quát được tập dữ liệu.

- Tồn tại nhiều điểm dữ liệu mà mô hình không phân


loại được dẫn đến độ chính xác mô hình thấp.

Overfitting (quá khớp):

- Overfitting là hiện tượng mô hình tìm được quá


khớp với dữ liệu huấn luyện. Điều này dẫn đến việc
dự đoán cả nhiễu nên mô hình không còn tốt khi phân
lớp trên dữ liệu mới.

14
- Quá khớp xảy ra khi lượng dữ liệu huấn luyện quá nhỏ trong khi độ phức tạp của mô
hình quá cao nên mặc dù độ chính xác cao nhưng không thể mô tả được xu hướng
tổng quát của dữ liệu mới (còn được gọi là High Variance).

Good Fitting:

- Là trường hợp mô hình cho ra kết quả hợp lý với cả


tập dữ liệu huấn luyện và các giá trị mới, tức mang
tính tổng quát.

- Ngoài thực tế mô hình tốt là mô hình cho kết quả


hợp lý một cách chấp nhận được trên dữ liệu mẫu lẫn
dữ liệu mới.

- Trong tất cả các giả thiết có thể được giải thích được một hiện tượng, ta nên chọn giả
thiết đơn giản nhất (Occam’s razor)

- Do đó, trong tất cả các model “Đúng”, chọn model Đơn Giản nhất.

a) Ma trận nhầm lẫn

- Ma trận nhầm lẫn là ma trận chỉ ra có bao nhiêu điểm dữ liệu thực sự thuộc vào một lớp
cụ thể, và được dự đoán là rơi vào lớp nào.

- Confusion Matrix là có kích thước k × k với k là số lượng lớp dữ liệu.

- Giá trị tại ô (i;j) cho biết số lượng


mẫu i bị phân vào lớp j.

Ví dụ: Bài toán chẩn đoán ung thư ta


có 2 lớp: lớp bị ung thư được chẩn
đoán Positive và lớp không bị ung thư
được chẩn đoán là Negative.

15
TP (True Positive) số lượng dự đoán chính xác. Là
mô hình dự đoán đúng một người bị ung thư.

TN (True Negative) số lượng dự đoán chính xác


một cách gián tiếp. Là khi mô hình dự đoán đúng
một người không bị ung thư, tức là việc chọn
trường hợp ung thư là chính xác.

FP (False Positive - Type 1 Error) Số lượng các dự đoán sai lệch. là khi mô hình dự đoán
một người bị ung thư nhưng người đó hoàn toàn khỏe mạnh.

FN (False Negative - Type 2 Error) Số lượng các dự đoán sai lệch một cách gián tiếp. Là
khi mô hình dự đoán một người không bị ung thư nhưng người đó bị ung thư, tức là việc
không chọn trường hợp bị ung thư là sai.

b) Accuracy

Là tỷ lệ số mẫu được phân lớp đúng trong toàn bộ tập dữ liệu.

acc = ( TP+TN ) / n => Error rate = 1 - acc là độ lỗi của mô hình

Accuracy chỉ cho chúng ta biết được tỷ lệ dữ liệu được phân loại đúng mà không
chỉ ra được cụ thể mỗi loại được phân loại như thế nào, lớp nào phân loại đúng nhiều nhất,
và dữ liệu thuộc lớp nào thường bị phân loại nhầm vào lớp khác.

c) Precision, Recall, F1 – score

 Precision (độ chính xác) cho biết trong số m mẫu được phân vào lớp i thì có tỷ lệ bao
nhiêu mẫu có đúng (tránh nhầm lẫn với tính chính xác accuracy):

precision = TP/(TP+FP)

 Recall (độ phủ) còn gọi là độ phủ hay độ nhạy (sensitivity) hay TPR (True Positive
Rate):

16
recall=TP/(TP+FN)

 F1-score: giá trị trung bình điều hòa (harmonic mean) của hai độ đo Precision và
Recall:

F1 = 2*[(precision x recall)/(precision+recall)]

F1 có giá trị gần với giá trị nào nhỏ hơn giữa hai giá trị Precision và Recall.

F1 sẽ có giá trị lớn nếu cả hai giá trị Precision và Recall đều lớn.

d) ROC và AUC

ROC (Receiver Operating Characteristic)

Là một đồ thị được sử dụng khá phổ


biến trong đánh giá các mô hình phân loại nhị
phân. Đường cong này được tạo ra bằng cách
biểu diễn tỷ lệ dự báo true positive rate (TPR)
dựa trên tỷ lệ dự báo false positive rate (FPR)
tại các ngưỡng khác nhau.

Một mô hình hiệu quả khi có FPR thấp và TPR cao, hay ROC càng tiệm cận với điểm
(0;1) trong đồ thị thì mô hình càng hiệu quả.

AUC (Area Under the Curve)

- Là diện tích nằm dưới đường cong ROC.

- Giá trị này là một số dương nhỏ hơn hoặc


bằng 1.

- Giá trị này càng lớn thì mô hình càng tốt.

17
CHƯƠNG 3. CÁC KẾT QUẢ THỰC NGHIỆM

3.1. Bộ Dữ Liệu

Dựa vào bảng dữ liệu trong Dataset thể hiện thông tin chi tiết về 400 khách hàng của một
công ty bao gồm ID, giới tính, độ tuổi của khách hàng và mức lương. Bên cạnh đó, công
ty đã thu thập thông tin liên quan đến quyết định mua - liệu khách hàng có quyết định
mua sản phẩm cụ thể hay không. Để tiến hành phân lớp dữ liệu và đánh giá khách hàng có
mua sản phẩm cụ thể ta sử dụng 3 phương pháp: Hồi quy Logistic (Logistic Regression),
Cây quyết định (Decision Tree), SVM (Support Vector Machine). Sau đó dựa vào những
kết quả chạy mô hình của Test & Score và Confusion Matrix. Cuối cùng, dựa vào số liệu
để chọn ra mô hình tốt nhất để dự báo.

Để đánh giá quyết định mua sản phẩm cụ thể của công ty này, ta dựa vào những thành
phần dưới đây:

Tổng cộng ta có 5 biến để thực hành mô hình dữ liệu. Ta đánh giá kết quả mô hình dựa
trên 4 biến. Ở đây, công ty đã thu thập được 400 mẫu và sẽ được đưa vào Data sample
nhằm tách dữ liệu thành 2 phần ngẫu nhiên theo tỷ lệ train/test (70/30)

18
Sau đó, ta áp dụng 3 phương pháp Hồi quy Logistic, SVM, Cây quyết định để tìm ra mô
hình tốt nhất để dự báo dựa vào Test & Score và Confusion Matrix

19
Sau khi có được kết quả từ các mô hình và lựa chọn mô hình tối ưu nhất cho việc dự đoán.
Tiếp tục nối mô hình được chọn và Test (30% data còn lại) vào phương pháp dự đoán để
hoàn thiện quá trình.

3.2. Các Kết Quả Thực Nghiệm

Sau đây là những kết quả thu được từ 3 phương pháp trên để chọn ra được phương pháp
tốt nhất để dự báo khả năng mua sản phẩm từ 400 khách hàng

20
Test & Score

Confusion Matrix

21
3.3. Phân Tích và Đánh Giá

22
Theo kết quả của Test & Score, chỉ số AUC (Area Under the Curve) của mô hình Hồi quy
Logistic gần nhất với 1 (0.880). Dựa vào lý thuyết, mô hình có giá trị dương lớn nhất nhỏ
hơn hoặc gần bằng 1 có độ chính xác cao nhất. Chỉ số khác của mô hình Hồi quy Logistic
như CA, F1, Precision, Recall cũng lớn nhất so với các mô hình khác (SVM, Tree). Vì
vậy mô hình Hồi quy Logistic có thể đưa ra kết luận chính xác nhất một cách hợp lý
Ngoài ra, để có thể căn cứ rằng mô hình Hồi quy Logistic là mô hình dự báo hiệu quả
nhất thì ta dựa vào kết quả của Confusion Matrix để tính 2 chỉ số Precision (Độ chính xác)
và Accuracy (Tính chính xác) từ 3 mô hình Tree, SVM và Logistic Regression:

Precision Accuracy

Tree 0.655 0.73

SVM 0.692 0.745

Logistic Regression 0.731 0.77

Dựa trên kết quả của Precision và Accuracy cho thấy được độ chính xác và tính chính xác
của Logistic Regression là cao nhất so với Tree và SVM.
Kết luận rằng mô hình Logistic Regression đem lại tính chính xác cao nhất

23
CHƯƠNG 4. KẾT LUẬN

4.1. Các Kết Quả Đạt Được

24
25
4.2. Những Hạn Chế và Hướng Phát Triển

-Hạn chế: do phạm vi mẫu dữ liệu khá hẹp từ công ty (lượng khách hàng, biến không phụ
thuộc chưa đa dạng) nên bài đồ án không thể phản ánh được hết những tiềm lực, nổi bật
của công ty để thuyết phục khách hàng ra quyết định mua sản phẩm. Bên cạnh đó hiểu
biết về phần mềm vẫn còn hạn chế nhất định nên còn nhiều thiếu sót.
-Hướng phát triển: để mô hình dữ liệu có thể hoạt động hiệu quả hơn cần phải được cập
nhật những yếu tố khác ảnh hưởng đến việc mua hàng (khuyến mãi, quảng cáo), cũng như
phản hồi của khách hàng đã từng mua hàng, từ đó tính ứng dụng của đề tài sẽ được phát
huy tối đa. Bên cạnh đó, ta có thể mở rộng mô hình với phạm vi lớn hơn với nhiều công
ty khác nhau để có cái nhìn tổng quát nhất cũng như tiềm lực mà công ty đang sở hữu
quyết định đến việc mua sản phẩm của khách hàng.

26
TÀI LIỆU THAM KHẢO

Tài liệu Tiếng Việt


1) Luận văn: Nghiên cứu phân lớp dữ liệu mất cân bằng và ứng dụng

2) Luận văn: Dự báo sự tăng giảm cảu một mã chứng khoán mô tả

3) Luận văn: Dự đoán tương tác Protein - Protein sử dụng kỹ thuật khai phá dữ liệu

4) Giáo trình, Slide bài giảng Khoa học dữ liệu

Website

5) https://text.123docz.net/document/6938197-nghien-cuu-phan-lop-tren-du-lieu-mat-
can-bang-va-ung-dung.htm

6) https://123docz.net/document/9351307-de-ta-i-du-ba-o-su-ta-ng-gia-m-cu-a-mo-t-ma-
chu-ng-khoa-n-mo-ta.htm

7) http://data.uet.vnu.edu.vn:8080/xmlui/bitstream/handle/123456789/1098/1.Lu%e1%b
a%adn%20v%c4%83n.pdf?sequence=1

8) https://www.stdio.vn/computer-vision/gioi-thieu-ve-mo-hinh-svm-D15jcg

27

You might also like