Phân tích dữ liệu với R: Thuật toán phân cụm K-Means trong phân khúc khách hàng

MỤC LỤC

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. 𝐸𝑛∗ đượ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.).

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

Ví dụ

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). 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.

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).

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

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

Thuật toán Fuzzy C-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). 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. - Mang lại kết quả tốt nhất cho tập dữ liệu chồng chéo và tương đối tốt hơn so với thuật toán K-Means.

- Không giống như K-Means trong đó điểm dữ liệu phải thuộc về một trung tâm cụm. Ở đây điểm dữ liệu được chỉ định thành viên cho mỗi trung tâm cụm do điểm dữ liệu có thể thuộc về nhiều hơn một trung tâm cụ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.

- 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, ….

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

Bài toán phân khúc khách hàng (Customer Segment) 2.1. Giới thiệu bài toán

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

Cho nên ta remove các cột không phải kiểu numeric là CustomerID, Defaulted và Address bằng lệnh select (dấu “-” thể hiện thao tác remove). - Sau khi loại bỏ các cột dữ liệu không cần thiết, ta tiến hành kiểm tra giá trị null trong các cột dữ liệu. - Sau khi kiểm tra thấy không có giá trị null nào, tiếp đến ta sẽ tiến hành mô tả dữ liệu để tóm tắt về các biến và giá trị.

Kết quả: Tập dữ liệu còn 619 quan sát sau khi loại bỏ các giá trị đột biến. - Bây giờ ta có thể thấy rằng các biến khác nhau có độ lớn khác nhau, ta cần thực hiện scale tập dữ liệu để phân tích thêm. - Tiếp theo là tới phần quan trọng nhất, đó là làm sao chọn K bằng bao nhiêu thì sẽ hợp lý và tối ưu nhất.

+ Elbow Method: Đây là phương pháp phổ biến nhất, phản ứng và trực giác nhanh. Đối với phương pháp Silhouette, chỉ số Average silhouette width thể hiện sự thích hợp của một điểm so với cụm, thang đo từ -1 đến 1. Có thể thấy phương pháp Elbow và Silhouette được thực thi nhanh hơn với bộ dữ liệu của nhóm (619 quan sát với 7 biến).

Có thể thấy việc chia 2 cụm là chưa hợp lý lắm bởi độ rộng của 2 cụm là hoàn toàn chênh lệch nhau. Đầu tiên có thể thấy 3 cụm đều có độ rộng trung bình lớn hơn độ rộng trung bình các cụm và độ rộng của các cụm cũng khá đồng đều. Kết luận: Dựa vào thời gian thực thi và đánh giá kết quả phân cụm thì phương pháp Elbow với kết quả K=3 sẽ được dùng trong quá trình xử lý bài toán lần này.

- Vì thuật toán phân cụm K-Means bắt đầu với K trọng tâm được chọn ngẫu nhiên, nên luôn được khuyến nghị sử dụng hàm set.seed() để nhận kết quả lặp lại mỗi khi tạo kết quả. Phân loại theo cụm lý tưởng rất quan trọng trong việc phân khúc khách hàng. - Để biết số lượng kích thước cụm, ta có thể sử dụng cột size của kmeans và sau đó visualize bằng piechart.

- Ta có thể tính giá trị trung bình của từng biến theo cụm bằng cách sử dụng dữ liệu gốc bằng lệnh aggregate. - Nếu ta muốn thêm phân loại điểm cụm vào dữ liệu gốc, ta có thể thử lệnh cbind dưới đây.

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