đồ án quá trình phân tích dữ liệu với rpython chủ đề thuật toán phân cụm k means và bài toán phân khúc khách hàng

42 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án quá trình phân tích dữ liệu với rpython chủ đề thuật toán phân cụm k means và bài toán phân khúc khách hàng

Đ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

Sau đó, các cụm được định vị dưới dạng điểm và tất cả các điểm quan sát hoặc điểm dữ liệu được liên kết với cụm gần nhất, được tính toán, điều chỉnh và sau đó quá trình bắt đầu lại bằng

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬT KHOA HỆ THỐNG THÔNG TIN

Trang 3

Nhưng với thời gian có hạn và chưa có nhiều kinh nghiệm nên có một số phần thiếu sót trong báo cáo, mong Thầy xem và góp ý để nhóm được hoàn thiện hơn trong đồ án này và cả ở những đồ án sau

Xin chân thành cảm ơn Thầy!

Trang 4

III

MỤC LỤC

Chương 1: Thuật toán phân cụm K-Means (K-Means Clustering) 1

1.1 Tổng quan 1

1.1.1 Định nghĩa thuật ngữ học không giám sát (Unsupervised Learning) 1

1.1.2 Định nghĩa phân cụm K-Means 1

1.1.3 Các trường hợp sử dụng thuật toán 2

1.2 Nội dung của thuật toán 2

1.2.1 Một số khái niệm dùng trong thuật toán 2

1.4 Các biến thể của thuật toán 13

1.4.1 Thuật toán K-Medoids 13

1.4.2 Thuật toán Fuzzy C-Means 14

1.5 Một số yếu tố ảnh hưởng đến thuật toán 15

1.5.1 Ảnh hưởng của outlier 15

1.5.2 Ảnh hưởng của việc khởi tạo trung tâm 16

Chương 2: Bài toán phân khúc khách hàng (Customer Segment) 18

2.1 Giới thiệu bài toán 18

2.2 Dữ liệu bài toán 18

2.3 Giải bài toán bằng ngôn ngữ R 19

2.4 Kết luận bài toán 33

Kết luận 34

Tài liệu tham khảo 35

Trang 5

IV

DANH MỤC HÌNH ẢNH

Hình 1.1: Sự khác nhau giữa máy học có giám sát và máy học không giám sát 1

Hình 1.2: Mô tả khái niệm dùng trong thuật toán 2

Hình 1.3: Khoảng cách Euclidean 3

Hình 1.4: Biểu đồ Elbow 4

Hình 1.5: Minh họa a(i) 5

Hình 1.6: Minh họa b(i) 5

Hình 1.7: Biểu đồ Silhouette 5

Hình 1.8: Biểu đồ Gap Statistic 7

Hình 1.9: Sơ đồ thuật toán K-Means 7

Hình 1.10: Biểu đồ thể hiện khách hàng dựa trên thu nhập và số nợ 9

Hình 1.11: Phân tách khách hàng thành 2 cụm 10

Hình 1.12: Phân tách khách hàng thành 4 cụm 10

Hình 1.13: Biểu đồ với trục x là Clusters, trục y là Inertia 11

Hình 1.14:Biểu đồ với Cluster là 2 và Inertia là 1000 11

Hình 1.15: Biểu đồ sau khi tăng Cluster lên 12

Hình 1.16: Sự khác nhau giữa K-Means và K-Medoids 13

Hình 1.17: Sự khác nhau giữa phân cụm dữ liệu cứng và phân cụm dữ liệu mềm 14

Hình 1.18: Ảnh hưởng của outlier 16

Hình 2.1: Kiểm tra giá trị null trong cột dữ liệu 20

Hình 2.2: Sử dụng phương pháp Elbow để tìm k tối ưu 24

Hình 2.3: Sử dụng phương pháp Silhouette để tìm k tối ưu 25

Hình 2.4: Sử dụng phương pháp Gap Statistic để tìm k tối ưu 26

Hình 2.5: Đánh giá kết quả phân cụm với k=2 28

Hình 2.6: Đánh giá kết quả phân cụm với k=3 29

Hình 2.7: Kết quả phân cụm với k=3 31

Hình 2.8: Biểu đồ thể hiện tỉ lệ phân cụm 32

Trang 6

V

DANH MỤC BẢNG BIỂU

Bảng 1: Bảng mô tả dữ liệu 18 Bảng 2: Bảng so sánh thời gian thực thi của các phương pháp 27

Trang 7

Chương 1: Thuật toán phân cụm K-Means (K-Means Clustering)

1.1 Tổng quan

1.1.1 Định nghĩa thuật ngữ học không giám sát (Unsupervised Learning)

Học không giám sát là một nhóm thuật toán hay phương pháp kỹ thuật cho phép máy tự học hỏi và tìm ra một mô hình hay cấu trúc nào đó ẩn trong một bộ dữ liệu không được gắn nhãn trước Điều này đồng nghĩa với việc chúng ta chỉ có bộ dữ liệu đầu vào và hoàn toàn không biết kết quả đầu ra là gì

Hình 1.1: Sự khác nhau giữa máy học có giám sát và máy học không giám sát

1.1.2 Định nghĩa phân cụm K-Means

Phân cụm K-Means là một thuật toán học không giám sát đơn giản được sử dụng để giải quyết các vấn đề phân cụm Nó tuân theo một thủ tục đơn giản là phân loại một tập dữ liệu nhất định thành một số cụm, được xác định bằng ký tự "k", được cố định trước Sau đó, các cụm được định vị dưới dạng điểm và tất cả các điểm quan sát hoặc điểm dữ liệu được liên kết với cụm gần nhất, được tính toán, điều chỉnh và sau đó quá trình bắt đầu lại bằng cách sử dụng các điều chỉnh mới cho đến khi đạt được kết quả mong muốn

Trang 8

1.1.3 Các trường hợp sử dụng thuật toán

Ví dụ phổ biến cho thuật toán này đó là việc phân loại khách hàng Các khách hàng có những đặc điểm tương đồng về mặt thông tin hoặc dựa trên lịch sử mua hàng, hành vi mua hàng có thể phân thành các loại khách hàng khác nhau Nói cách khác mỗi loại khách hàng sẽ có những đặc điểm chung giống nhau, và những đặc điểm đó được phát hiện thông qua thuật toán phân cụm

Ngoài ra có một ví dụ khác mà chúng ta cũng hay bắt gặp, đó là các mạng xã hội luôn tìm cách phân cụm những người có cùng sở thích, thói quen để đưa ra những gợi ý kết bạn hay tham gia một nhóm nào đó

1.2 Nội dung của thuật toán

1.2.1 Một số khái niệm dùng trong thuật toán

Hình 1.2: Mô tả khái niệm dùng trong thuật toán

- Cluster (cụm): là một nhóm các điểm dữ liệu tương tự nhau - k: là số lượng của các cụm

- Centroid: là trung tâm của 1 cụm dữ liệu

- Khoảng cách Euclidean: là độ dài của đoạn thẳng nối hai điểm trong không gian Euclide

Trang 9

Phương pháp Elbow là phương pháp dùng để xác định số lượng cụm tối ưu nhất cho tập dữ liệu

Mô hình Elbow thực hiện để xác định giá trị k trong K-Means như sau: 1 Khởi tạo giá trị ban đầu cho k

2 Tăng giá trị của k

3 Tính tổng bình phương khoảng cách giữa mỗi điểm và tâm trong một cụm (WCSS - Within-Cluster Sum of Square) từ mỗi giá trị của k

2ii 1 x C

WCSSd(x, m )

=  Trong đó:

• Ci: là cụm thứ i

• mi: là centroid của cụm Ci

4 Vẽ biểu đồ từ WCSS và giá trị k, phân tích tổng các kết quả WCSS từ giá trị k đã giảm mạnh

Trang 10

5 Xác định vị trí mà WCSS giảm mạnh sau đó đồ thị bắt đầu di chuyển gần như song song với trục x và đặt điểm k

Hình 1.4: Biểu đồ Elbow

1.2.2.2 Phương pháp Average Silhouette

Hệ số Silhouette là thước đo mức độ tương tự của một điểm dữ liệu trong cụm (liên kết) so với các cụm khác

Để vẽ biểu đồ Silhouette ta cần 2 bước:

- Chọn một đoạn giá trị của k (giả sử từ 1 đến 10)

- Vẽ đồ thị thể hệ số Silhouette ứng với mỗi giá trị k, để vẽ đồ thị ta cần hệ số Silhouette tại một điểm dữ liệu và trung bình silhouette cho mỗi k

Phương trình trình tính toán hệ số Silhouette tại một điểm dữ liệu cụ thể như sau: 𝑆(𝑖) = 𝑏(𝑖) − 𝑎(𝑖)

max⁡{𝑎(𝑖), 𝑏(𝑖)}Trong đó:

• S(i) là hệ số hình bóng của điểm dữ liệu i

• a(i) là khoảng cách trung bình giữa i và tất cả các điểm dữ liệu khác trong cụm mà i thuộc về

• b(i) là khoảng cách trung bình từ i đến tất cả các điểm dữ liệu khác trong những cụm mà i không thuộc về

Trang 11

Hình 1.5: Minh họa a(i)

Hình 1.6: Minh họa b(i)

Sau đó, ta sẽ tính toán trung bình silhouette cho mỗi k 𝐴𝑣𝑒𝑟𝑎𝑔𝑒𝑆𝑖𝑙ℎ𝑜𝑢𝑒𝑡𝑡𝑒 = 𝑚𝑒𝑎𝑛{𝑆(𝑖)}

Cuối cùng, ta biểu đồ giữa trung bình silhouette và k Chọn k cụm tại giá trị của k sao cho trung bình silhouette lớn nhất

Hình 1.7: Biểu đồ Silhouette

Trang 12

1.2.2.3 Phương pháp Gap Statistic

Phương pháp này có thể được áp dụng cho bất kỳ phương pháp phân cụm nào (K-means clustering, hierarchical clustering) Gap Statisstic so sánh tổng biến thể trong cụm đối với các giá trị khác nhau của k với giá trị dự kiến của chúng trong phân phối tham chiếu rỗng của dữ liệu (tức là phân phối không có phân nhóm rõ ràng) Tập dữ liệu tham chiếu được tạo bằng cách sử dụng mô phỏng Monte Carlo của quá trình lấy mẫu Đó là, cho mỗi biến (xi) trong tập dữ liệu, chúng tôi tính toán phạm vi của nó [min(xi), max(xi)] và tạo ra các giá trị cho n điểm một cách đồng nhất trong khoảng thời gian từ min đến max

Đối với dữ liệu quan sát và dữ liệu tham chiếu, tổng biến thể nội bộ được tính bằng cách sử dụng các giá trị khác nhau của k Thống kê khoảng cách cho k cho trước được định nghĩa như sau:

𝐺𝑎𝑝𝑛(𝑘) = 𝐸𝑛∗log(𝑊𝑘) − log⁡(𝑊𝑘)

Trong đó, 𝐸𝑛∗ biểu thị kỳ vọng dưới cỡ mẫu n từ phân phối tham chiếu 𝐸𝑛∗ được xác định thông qua bootstrapping (B) bằng cách tạo B bản sao của bộ dữ liệu tham chiếu và bằng cách tính toán giá trị trung bình log(𝑊𝑛∗) Gap statistic đo lường độ lệch của quan sát được giá trị Wk từ giá trị kỳ vọng của nó theo giả thuyết Ước tính của các cụm tối ưu (k) sẽ là giá trị tối đa hóa Gapn(k) Điều này có nghĩa là cấu trúc phân cụm nằm xa sự phân bố đồng đều của các điểm.)

Thuật toán bao gồm các bước sau:

1 Cụm dữ liệu quan sát, thay đổi số lượng cụm từ k=1, …, k=max và tính toán tương ứng Wk

2 Tạo tập dữ liệu tham chiếu B và phân cụm từng nhóm với số lượng cụm khác nhau k=1, …, k=max Tính toán Gapn(k) ước tính:

𝐺𝑎𝑝𝑛(𝑘) = 𝐸𝑛∗log(𝑊𝑘) − log⁡(𝑊𝑘) 3

- Đặt: 𝑤̅ = (1

𝐵) ∑ log⁡(𝑊𝑏 𝑘𝑏∗ )- Tính độ lệch chuẩn: 𝑠𝑑(𝑘) = √(1

𝑏) ∑ (log(𝑊𝑘𝑏∗ ) − 𝑤̅)2𝑏

- Xác định: 𝑠𝑘 = 𝑠𝑑𝑘 ∗ √1 + 1/𝐵 4 Chọn số cụm là k nhỏ nhất sao cho

Trang 13

𝐺𝑎𝑝(𝑘) ≥ 𝐺𝑎𝑝(𝑘 + 1) − 𝑠𝑘+1

Hình 1.8: Biểu đồ Gap Statistic

1.2.3 Tóm tắt các bước của thuật toán

Hình 1.9: Sơ đồ thuật toán K-Means

Đầu vào: N điểm dữ liệu X = [x1, x2, x3, xN] chưa có nhãn vector và số lượng cụm cần tìm k

Trang 14

Đầu ra: Các trung tâm K = [m1, m2, m3, mK] và nhãn vector cho từng điểm dữ liệu

Các bước thực hiện thuật toán:

1 Chọn số k cụm và chọn ngẫu nhiên k điểm làm trung tâm Sử dụng các phương pháp để tìm được số k tối ưu nhất

2 Gán mỗi điểm dữ liệu về cụm có trung tâm cụm gần nhất Ta xác định nhãn cho từng điểm dữ liệu bằng cách tính toán khoảng cách của từng điểm dữ liệu tới tâm cụm của nó, thực hiện bằng phương pháp tính khoảng cách Euclidean Một điểm dữ liệu x được phân vào một cụm Ci có trung tâm là mi (trung tâm được chọn ở bước 1)

𝑑 = 𝑎𝑔𝑟𝑚𝑖𝑛𝑖||𝑥 − 𝑚𝑖||2Trong đó:

• x là một điểm dữ liệu được phân vào một cụm Ci • mi là trung tâm của Ci

• agrmini là tìm giá trị nhỏ nhất của biến số để hàm số đó đạt giá trị nhỏ nhất • 𝑑(𝑥, 𝑚𝑖)= ||𝑥 − 𝑚𝑖|| = √(𝑥1− 𝑚𝑖1)2+ (𝑥2 − 𝑚𝑖2)2+ ⋯ + (𝑥𝑛− 𝑚𝑖𝑛)2

Giải thích: Tính khoảng cách của mỗi điểm x đến mỗi điểm trung tâm m, ví dụ

d(x1,m1), d(x1,m2), d(x1,m3) sau đó chọn khoảng cách ngắn nhất và gán x1 cho trung tâm mi tương ứng Tương tự ta tính khoảng cách và gán các điểm x2, x3, …, xn cho các trung tâm tương ứng

3 Tính toán lại vị trí trung tâm cho từng cụm Sau khi các cụm được hình thành có tâm và các điểm dữ liệu được gán cho nó Ta xác định lại vị trí trung tâm mới cho các cụm đó bằng cách tính trung bình cộng của các điểm dữ liệu trong cụm, trung bình cộng đó sẽ là trung tâm mới của cụm

Trang 15

• mi là trung tâm của cụm Ci

4 Lặp lại bước 2 và 3 tới khi vị trí các trung tâm cụm không đổi

1.3 Đặc điểm của thuật toán

K-Means là một thuật toán dựa trên centroid, hoặc một thuật toán dựa trên khoảng cách, tính toán khoảng cách để gán một điểm cho một cụm Trong K-Means, mỗi cụm được liên kết với một trung tâm

Chất lượng của thuật toán K-Means phụ thuộc nhiều vào các tham số đầu vào như: số cụm k, và k vector trọng tâm khởi tạo ban đầu Trong trường hợp các vector trọng tâm khởi tạo ban đầu mà quá lệch so với các trọng tâm cụm tự nhiên thì kết quả phân cụm của K-Means là rất thấp, nghĩa là các cụm dữ liệu được khám phá rất lệch so với các cụm trong thực tế Trên thực tế, chưa có một giải pháp nào để chọn tham số đầu vào, giải pháp thường được sử dụng nhất là thử nghiệm với các giá trị đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất

1.3.1 Ví dụ

Ví dụ 1: Ngân hàng muốn phân khúc khách hàng dựa trên thu nhập và số nợ của họ:

Hình 1.10: Biểu đồ thể hiện khách hàng dựa trên thu nhập và số nợ

Chúng ta có thể phân tách thành 2 cụm: Khách hàng có thu nhập thấp thuộc 1 cụm và khách hàng có thu nhập cao thuộc cụm thứ 2

Trang 16

Hình 1.11: Phân tách khách hàng thành 2 cụm

Chúng ta cũng có thể phân tách thành 4 cụm: - Thu nhập thấp, nợ ít

- Thu nhập thấp, nợ nhiều - Thu nhập cao, nợ ít - Thu nhập cao, nợ nhiều

Hình 1.12: Phân tách khách hàng thành 4 cụm

Ví dụ 2: Biểu đồ, trong đó trục x là số lượng các cụm (Clusters), trục y là số liệu đánh giá (Inertia: là một độ đo về mức độ gắn kết nội bộ trong một cụm)

Trang 17

Hình 1.13: Biểu đồ với trục x là Clusters, trục y là Inertia

Giả sử ban đầu, Clusters là 2 và Inertia là 1000

Hình 1.14:Biểu đồ với Cluster là 2 và Inertia là 1000

Sau đó, tăng Clusters lên

Trang 18

Hình 1.15: Biểu đồ sau khi tăng Cluster lên

Có thể thấy, khi thay đổi giá trị Clusters từ 2 thành 4 hoặc 6 thì giá trị Inertia giảm rất mạnh Và khi tăng số lượng Clusters đến một mức độ nào đó, ta thấy giá trị Inertia còn giảm đều, không đáng kể hoặc gần như là không đổi Lúc đó, có thể chọn Clusters đó làm giá trị cụm phù hợp cho dữ liệu (Từ 6-10) Tuy nhiên, cũng cần tính toán tài nguyên khi quyết định số lượng cụm (Số lượng cụm càng lớn thì tài nguyên tính toán càng cao)

1.3.2 Ưu điểm

- Tương đối nhanh, độ phức tạp của thuật toán là O (tkn) trong đó: • n là số điểm trong không gian dữ liệu

• t là số lần lặp (Thường thì t rất nhỏ so với n) • k là số cụm cần phân hoạch

- K-Means phù hợp với các cụm có dạng hình cầu

- Có khả năng mở rộng và dễ dàng sửa đổi với những dữ liệu mới - Bảo đảm hội tụ sau một số bước lặp hữu hạn

- Luôn có ít nhất một điểm trong cụm

- Các cụm được tách biệt rõ ràng không có hiện tượng một đối tượng xuất hiện trong nhiều cụm dữ liệu

Trang 19

- Hiệu quả trong thực tế

- Chỉ có thể áp dụng khi tính được trọng tâm

1.4 Các biến thể của thuật toán 1.4.1 Thuật toán K-Medoids

Thuật toán K-Medoids tương tự thuật toán K-Means, nó yêu cầu người dùng chỉ định k, số lượng cụm được tạo, mỗi cụm được đại diện bởi một trong số các đối tượng của cụm Thay vì sử dụng điểm trung bình làm trung tâm của một cụm, K-Medoids sử dụng một điểm thực trong cụm để đại diện cho nó Thông thường thì điểm gần vector trọng tâm sẽ được chọn làm điểm đại diện của cụm

Hình 1.16: Sự khác nhau giữa K-Means và K-Medoids

Trang 20

Ưu điểm:

- Loại được nhiễu trong thuật toán K-Means - Nó rất đơn giản dễ hiểu và dễ thực hiện

- Thuật toán K-Medoids nhanh và hội tụ trong một số bước cố định

- PAM (Thuật toán phân vùng xung quanh Medoid) ít nhạy cảm hơn với các ngoại lệ so với các thuật toán phân vùng khác

Nhược điểm:

- Nhược điểm chính của thuật toán K-Medoids là nó không thích hợp để phân cụm các nhóm đối tượng không hình cầu (có hình dạng tùy ý) Điều này là do nó dựa vào việc giảm thiểu khoảng cách giữa các đối tượng không phải medoid và medoid (trung tâm cụm) - một cách ngắn gọn, nó sử dụng tính nhỏ gọn làm tiêu chí phân cụm thay vì kết nối

- Nó có thể thu được các kết quả khác nhau cho các lần chạy khác nhau trên cùng một tập dữ liệu vì K-Medoids đầu tiên được chọn ngẫu nhiên

- Độ phức tạp của thuật toán rất lớn

1.4.2 Thuật toán Fuzzy C-Means

Thuật toán Fuzzy C-Means có chiến lược phân cụm giống như K-Means Nhưng có một điểm khác biệt là K-Means phân cụm dữ liệu cứng (một đối tượng chỉ thuộc vào một cụm) còn Fuzzy C-Means là phân cụm dữ liệu mềm (một đối tượng có thể thuộc nhiều cụm khác nhau)

Hình 1.17: Sự khác nhau giữa phân cụm dữ liệu cứng và phân cụm dữ liệu mềm

Trang 21

Fuzzy C-Means có khả năng phân cụm trong không gian đa chiều và có khả năng phân cụm tối ưu toàn cục

Nhược điểm:

- Thuật toán này khá phức tạp và tốc độ hội tụ phụ thuộc vào trạng thái ban đầu của ma trận thành viên

- Thông số kỹ thuật Apriori về số lượng cụm

- Với giá trị β thấp hơn, chúng ta nhận được kết quả tốt hơn nhưng với chi phí là số lần lặp lại nhiều hơn

- Các phép đo khoảng cách Euclide có thể cân bằng các yếu tố cơ bản một cách bất bình đẳng

Ngoài ra còn có các biến thể khác như: Gaussian mixture models, Spherical K-Means, Minkowski metric weighted K-Means, …

1.5 Một số yếu tố ảnh hưởng đến thuật toán 1.5.1 Ảnh hưởng của outlier

Trang 22

1.5.1.2 Khắc phục outlier

- Outlier removal: Có thể loại bỏ các điểm dữ liệu xa đáng kể so với điểm trung tâm

(centroid) của các cluster so với các điểm dữ liệu khác Việc loại bỏ có thể được thực hiện trước hoặc trong khi phân cụm

- Random sampling: Thay vì phân cụm toàn bộ tập dữ liệu, chúng ta sẽ lấy ngẫu nhiên

tập con S từ tập dữ liệu huấn luyện S được sử dụng để phân cụm, tập S lúc này sẽ có ít các điểm outlier hơn tập dữ liệu gốc Sau khi phân cụm xong, tập dữ liệu còn lại sẽ được gán vào các cụm đã học được

1.5.2 Ảnh hưởng của việc khởi tạo trung tâm

Chất lượng của K-Means phụ thuộc vào việc khởi tạo các điểm centroid

Hình 1.18: Ảnh hưởng của outlier

Giải pháp 1: Lặp lại nhiều lần thuật toán K-Means

- Mỗi lần chạy lại thuật toán K-Means sẽ khởi tạo các điểm centroid khác nhau

- Sau quá trình học, tiến hành gộp các kết quả từ các lần chạy thành kết quả cuối cùng

Giải pháp 2: Thuật toán K-Means++: Để tìm ra cụm tốt nhất, chúng ta có thể lần lượt

khởi tại các điểm trung tâm từ tập D tuần tự như sau: - Lấy ngẫu nhiên điểm centroid đầu tiên m1

Ngày đăng: 06/05/2024, 12:19

Tài liệu cùng người dùng

Tài liệu liên quan