1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

28 186 0

Đ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 đề 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
Tác giả Nguyễn Thị Hồng Ngân, Nguyễn Quốc Huy
Người hướng dẫn TS. Đặng Ngọc Hoàng Thành
Trường học Đại Học Kinh Tế TP Hồ Chí Minh
Chuyên ngành Khoa Học Dữ Liệu
Thể loại Đề Tài
Năm xuất bản 2022
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 28
Dung lượng 2,61 MB

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

Nội dung

Ngoài ra, khoa học dữ liệu cũng là mộtcông cụ lao động quan trọng trong kỷ nguyên chuyển đổi số.Vì vậy, từ quan đ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ì

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠOĐẠI HỌC KINH TẾ TP HỒ CHÍ MINHTRƯỜ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

Trang 2

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

Trang 3

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ộtcông cụ lao động quan trọng trong kỷ nguyên chuyển đổi số.Vì vậy, từ quan đ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à 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ựcphâ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ư khaithá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ềubả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ê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

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

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 đượctă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 emchọ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 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 5

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, emailspam, 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 áctì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:

Trang 6

P(y=1) = 1

1+e −(w0+w1x1+w2x2+…+wdxd)

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

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, , xdbao gồm: tuổi, học vấn, thu nhập, tài sản,

Hàm logistic (sigmoid): P(y=1) = 1+e−(w0+w1x1+w2x2+…+wdxd)1

 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, , wdphù 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

Trang 7

- 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ộ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 sẽ sinh ra các luật để dự đoán lớp của các dữ liệu chưa biết (unseendata)

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 DecisionTree đượ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

Trang 8

 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 hailớ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ệuthà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 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 đườ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 đề Vì vậy nhiều khi cần phải ánh xạ các

Trang 9

đ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ệcphâ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 supportvector, 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

Trang 10

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/ �12+ �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à:

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

Trang 11

 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ủ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

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

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

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ìnhphân lớp trên dữ liệu có đặc thù cụ thể, từ đó quyết định có sử dụng mô hình đó haykhô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)

Underfitting (chưa khớp):

- Mô hình được coi là chưa khớp nếu nó chưa đượcphù hợp với tập dữ liệu huấn luyện và cả các mẫumới khi dự đoán

- Nguyên nhân có thể là do mô hình chưa đủ độ phứctạ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ânloại được dẫn đến độ chính xác mô hình thấp

Trang 16

- 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ướngtổ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

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

Trang 17

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á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) 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ôngchỉ 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ệ baonhiê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 PositiveRate):

Ngày đăng: 28/11/2022, 18:18

TỪ KHÓA LIÊN QUAN

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

w