Trong khai phá dữ liệu thì bài toán phân lớp classification là thông dụng nhấtPhâ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
Trang 1ĐẠ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 Học phần: Khoa Học Dữ Liệu : Khoa Học Dữ Liệu Nhóm Sinh Viên
TP Hồ Chí Minh, Ngày 27 tháng 05 năm 2022
Trang 2MỤC LỤC
MỤC MỤC LỤCLỤC 1 1CHƯƠNG
CHƯƠNG 1 1 TỔNG TỔNG QUANQUAN 2 21.1 Tổng Quan Về Bài Toán Phân Lớp Dữ Liệu 21.2 Giới Thiệu Về Python và Phần Mềm Orange 21.3 Lý
1.3 Lý Do Chọn Do Chọn Lựa Lựa Đề TĐề Tàiài 3 3CHƯƠNG 2 CÁC MÔ HÌNH PHÂN LỚP DỮ LIỆU 42.1 Các Mô Hình Phân Lớp Dữ Liệu 42.1.1 Mô
2.1.1 Mô Hình Logistic Hình Logistic RegressionRegression 4 42.1.2
2.1.2 Mô HìMô Hình Denh Decision cision TreeTree 6 62.1.3 Mô Hình Support Vector Machine 72.1.4 Mô
2.1.4 Mô Hình Neural Hình Neural NetworkNetwork 10 102.2 Quy Trình Phân Lớp Dữ Liệu 112.2.1
2.2.1 Phân Phân Chia Chia Dữ Dữ LiệuLiệu 11 112.2.2
2.2.2 Phân Phân Lớp Lớp Dữ Dữ LiệuLiệu 13 132.2.3 Đánh Giá Tính Hiệu Quả 14
CHƯƠNG 3 CÁC KẾT QUẢ THỰC NGHIỆM 183.1
3.1 Bộ Bộ Dữ Dữ LiệuLiệu 18183.2 Các Kết Quả Thực Nghiệm 203.3 Phân
3.3 Phân Tích và Tích và Đánh GiĐánh Giáá 22 22CHƯƠNG 4
CHƯƠNG 4 KẾT LUẬNKẾT LUẬN 24244.1 Các
4.1 Các Kết Kết Quả ĐạQuả Đạt Đượct Được 24 244.2 Những Hạn Chế và Hướng Phát Triển 26TÀI
TÀI LIỆU LIỆU THAM THAM KHẢOKHẢO 27 27
Trang 3CHƯƠ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ộtcông cụ lao
công cụ lao động quan trọng trong kỷ nguyên chuyển đổi số.Vì vậy, từ quan động quan trọng trong kỷ nguyên chuyển đổi số.Vì vậy, từ quan điểm chuyênđiểm chuyênmô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ếnthức toán học Về quy trình và
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ữ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
phân tích dữ tích dữ liệu, cliệu, chẳng hẳng hạn hạn như như thống kê thống kê khoa khoa học, học, khai khai thác thác dữ dữ liệu, liệu, tương tự tương tự như như khaikhaithá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ấtPhâ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
bản cập nhật nhỏ dần nhật nhỏ dần hoàn thiện choàn thiện chức năng hức năng và cú và cú phá.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êngia 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ínhchặ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
Trang 4
33
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ớinhữ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ácdò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ụ 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à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ệntrự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 đơngiả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ệnkhai thác dữ liệu và học máy dễ dàng hơn
chọn đề tài này với mục đích sử với mục đích sử dụng những thàndụng những thành tựu, ứng dụng của h tựu, ứng dụng của khoa học dữ liệu để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 doanhnghiệ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áttriển phù hợp nhất
Trang 5CHƯƠ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 2.1 Các Mô Hình Phân Lớp Dữ LiệuDữ Liệu2.1.1 Mô Hình Logistic Regression
Mô tả:
Mô tả: Đối với bài tập phân lớp: Đối với bài tập phân lớp:
TậpTập””nhãn y = {y11,, yy22, , ynn} với n là số lớp
Một đối tượng dữ liệu x = {x11, x22, , xdd} với d
là số thuộc tính của mỗi dòng dữ liệu và được biểu diễn
biểu diễn dưới dạng vecdưới dạng vector.tor
Hàm logistic:
Trang 6
55
P(y=1) = 11
1+e −( −(ww00+w +w11xx11+w +w22xx22+…+w +…+wddxxdd))
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
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ạicho phù hợp
Biến phân lớBiến phân lớp (biến phụ p (biến phụ thuộc): y=1: thuộc): y=1: vỡ nợ; yvỡ nợ; y=0: không vỡ =0: không vỡ nợ.nợ
Biến Biến độc độc lập lập xx11,, xx22, , xdd bao gồm: tuổi, bao gồm: tuổi, học vấn, học vấn, thu nhập, tài thu nhập, tài sản, sản,
Hàm logistic (sigmoid): P(y=1) = 11
1+e−(w−(w00+w+w11xx11+w+w22xx22+…+w+…+wddxxdd))
Một ngưỡng t đMột ngưỡng t để phân lớp (nếu P(y) t ể phân lớp (nếu P(y) t thì phân vào lớp thì phân vào lớp có thể vỡ nợ và ngược có thể vỡ nợ và ngược lại).lại)
Vấn đề: cần tVấn đề: cần tìm bộ hệ ìm bộ hệ số (trọng số): số (trọng số): ww00, w11,, ww22, , wdd phù hợp để ước lượng
Bộ hệ số này sẽ được tính toán và điều chBộ hệ số này sẽ được tính toán và điều chỉnh tronỉnh trong giai đoạn huấn luyg giai đoạn huấn luyện Sau đó,ệ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
Trang 7- Trong lĩnh vực khai thác dữ liệu, câyquyết định là phương pháp nhằm mô tả, phân loại
phân loại và tổng và tổng hợp hóa hợp hóa tập dữ tập dữ liệu choliệu chotrướ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ộctính của đối tượng (ngoại trừ thuộc tính phân lớp - Category attribute) có thể thuộc cáckiểu dữ liệu khác nhau (Binary, Nominal, ordinal, quantitative values) trong khi đó thuộctí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 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 sẽ sinh ra các luật để dự đoán lớp của các dữ liệu chưa biết (unseen
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ụngbở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 Ưu khuyết điểmkhuyết điểm
Ưu điểm:
Dễ Dễ hiểu.hiểu
Trang 8
77
Không đKhông đòi hỏi òi hỏi việc chuẩn việc chuẩn hóa dữ hóa dữ liệu.liệu
Có thể xử Có thể xử lý trên nhiều lý trên nhiều kiểu dữ liệu kiểu dữ liệu khác nhau.khác nhau
Xử lý tXử lý tốt một lượng ốt một lượng dữ liệu lớn dữ liệu lớn trong thời trong thời gian nhắn.gian nhắn
Khuyết điểm:
Khó giải quyKhó giải quyết trong tìnết trong tình huống dữ h huống dữ liệu phụ thuliệu phụ thuộc thời gian.ộc thời gian
Chi pChi phí xây hí xây dựng mô dựng mô hình cao.hình cao
2.1.3 Mô Hình Support Vector MachineSVM 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 hailớp khác nhau
SVM SVM xây dựnxây dựng (learng (learn) ) một siêmột siêu phẳng (hyu phẳng (hyperpperplanlane) để phân lớp (clae) để phân lớp (classissify) tập dữ liệufy) 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ộttậ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
Nếu ta ta cần cần phân phân lớp lớp dữ dữ liệu liệu chỉ chỉ gồm gồm 2 2 feature feature thì thì siêu siêu phẳng phẳng lúc lúc này này sẽ sẽ là là một một đườngđườngthẳ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 haisiê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ộtkhông gian ban đầu được dùng để mô tả một vấn
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ạ đề Vì vậy nhiều khi cần phải ánh xạ cáccác
Trang 9đến 2 điểm dữ liệu gần nhất tương ứng với 2 phânliệu gần nhất tương ứng với 2 phânlớp.
SVM cố gắng tối ưu bằng cáchSVM cố gắng tối ưu bằng cách tối đa hóa tối đa hóa giá trị giá trịmargin
margin này, từ đó tìm ra siêu phẳng đẹp nhất để này, từ đó tìm ra siêu phẳng đẹp nhất để phân
phân 2 2 lớp lớp dữ dữ liệu liệu Nhờ Nhờ vây, vây, SVM SVM có có thể thể giảmgiảmthiểu việc phân lớp sai (misclassification) đối vớiđiểm dữ liệu mới đưa vào
xxii: 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ácsupport vector của 2 lớp dữ liệu lần lượt là:
w11xx11+ w22xx22 + b = 1
w11xx11+ w22xx22 + b = -1
Trang 10
99
Viết gọn lại là: wx – b = 1 Viết gọn lại là: wx – b = 1 và wx – b và wx – b = -1.= -1
Khi đó đường thẳng phân cách cần tìm: w11xx11+ w22xx22 + b = 0 hay wx – b = 0
Tổng quát hóa trong không gian nhiều chiều
Hard Margin SVM Hai lớp Hai lớp cần phân lớcần phân lớp là p là có thể có thể phân chia tuyến phân chia tuyến tính (linearlytính (linearly
seperable)
Soft Margin SVM Hai lHai lớp cần ớp cần phân lớphân lớp lp là “gần” à “gần” phân chia phân chia tuyến ttuyến tính (almostính (almost
linear seperable)Mul
Multi-ti-claclass ss SVM SVM PhâPhân n lớp lớp đa đa lớp lớp (bi(biên ên giữgiữa a các các lớp lớp là là tuytuyến ến tíntính)h)K
Keerrnneel l SSVVM M DDữ ữ lliiệệu u llà à pphhi i ttuuyyếếnn
Trang 11 Chưa thể Chưa thể hiện tính hiện tính xác suất trong xác suất trong phân lớp.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ủasinh 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
Trang 12
11
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ănglư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áctậ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
Trang 13*Phương pháp K-FoldPhươ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ộttrong 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ấnluyệ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
Trang 14
13
2.2.2 Phân Lớp Dữ LiệuQuá trình phân lớp dữ liệu gồm hai bước chính:
Bước 1:
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à
- Kết quả của bước này là mô hình phân lớp mô hình phân lớp đã được huấn luyện đã được huấn luyện (trình phân lớp). (trình phân lớp).””
Bước 2:
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ínhgá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
Trang 15- 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ựavà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
phân lớp lớp trên trên dữ dữ liệu liệu có có đặc đặc thù thù cụ cụ thể, thể, từ từ đó đó quyết quyết định định có có sử sử dụng dụng mô mô hình hình đó đó hayhaykhô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ôngquá nhạy cảm với nhiễu (tránh underfitted và overfitting)
Trang 16Good 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 mangtí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
- 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ượngmẫu i bị phân vào lớp j
Ví dụ:
Ví dụ: Bài toán chẩn đoán ung thư ta 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
Trang 17TP (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ácmộ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ọntrườ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ánmộ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ệckhông chọn trường hợp bị ung thư là sai
b) b) AcAccurcuracyacy
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 acc = ( TP+TN ) / n => Error rat=> Error rate = 1 - acc là độ lỗi của mô hìnhe = 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ôngchỉ ra được
chỉ ra được cụ thể mỗi loại được cụ thể mỗi loại được phân loại như thế nào, lớp phân loại như thế nào, lớp nào phân loại đúng nhiều nhất,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) c) PrecPrecisiision, on, RecaRecall, ll, F1 F1 – s– scorecore
PrecisiPrecision (độ chính xácon (độ chính xác) cho biết tron) cho biết trong số m mẫu được phân vào lớp i thì có tỷ lệ baog số m mẫu được phân vào lớp i thì có tỷ lệ baonhiêu mẫu có đúng (tránh nhầm lẫn với tính chính xác accuracy):
precision = precision = TP/(TP+FP)TP/(TP+FP)
Recall (độ phủ) còn gọi là độ phủ hay Recall (độ phủ) còn gọi là độ phủ hay độ nhạy (sensitđộ nhạy (sensitivityivity) hay ) hay TPR (True PositiTPR (True PositiveveRate):