Trong thế giới của khoa học dữ liệu và học máy, việc tìm kiếm các mẫu và cấu trúc ẩn trong dữ liệu là một nhiệm vụ quan trọng. Thuật toán K-means là một trong những phương pháp phân cụm phổ biến nhất, giúp chúng ta nhóm các điểm dữ liệu tương tự lại với nhau một cách tự động.
K-means là một thuật toán học máy không giám sát (unsupervised learning), có nghĩa là nó hoạt động trên dữ liệu không có nhãn. Mục tiêu của thuật toán là phân chia tập dữ liệu thành cụm khác nhau, trong đó là một số được xác định trước. Các điểm dữ liệu trong cùng một cụm có xu hướng tương đồng với nhau hơn so với các điểm dữ liệu ở các cụm khác.
Giả định rằng bộ dữ liệu là một tập hợp vector :
Thuật toán được mô tả như sau:
Khởi tạo: Chọn ngẫu nhiên điểm trong không gian dữ liệu làm tâm (centroid) của cụm ban đầu. Ta ký hiệu các cụm lần lượt là với các centroid tương ứng .
Gán nhãn: Tính toán khoảng cách từ mỗi điểm dữ liệu đến từng tâm cụm :
Khoảng cách Euclide từ điểm đến điểm được cho bởi công thức
Một điểm sẽ được gán vào cụm nếu khoảng cách là nhỏ nhất
Cập nhật tâm: Tính toán lại tâm của mỗi cụm bằng cách lấy trung bình của tất cả các điểm dữ liệu thuộc cụm đó. , với là số lượng các điểm trong cụm .
Lặp lại: Lặp lại bước 2 và 3 cho đến khi các tâm cụm không thay đổi đáng kể hoặc đạt đến số lần lặp tối đa.
Việc chọn không thể dựa trên cảm tính. Chúng ta cần các thước đo định lượng để đánh giá hiệu quả của việc phân cụm.
Phương pháp Khuỷu tay (Elbow Method) và WCSS
Phương pháp này dựa trên việc cực tiểu hóa tổng bình phương khoảng cách nội cụm (Within-Cluster Sum of Squares - WCSS).
Công thức tính WCSS:
Trong đó:
: Số lượng cụm.
: Tập hợp các điểm dữ liệu thuộc cụm thứ .
: Tâm cụm (centroid) của cụm .
: Bình phương khoảng cách Euclidean từ điểm đến tâm cụm.
Khi tăng, WCSS chắc chắn giảm. Ta chọn tại vị trí mà tốc độ giảm của WCSS bắt đầu chậm lại rõ rệt (tạo thành một góc nhọn như cái khuỷu tay trên đồ thị). Lý do là vì tại đó, việc thêm cụm mới không còn giúp giải thích thêm nhiều biến động của dữ liệu nữa
Chỉ số Silhouette (Silhouette Coefficient)
Chỉ số này đánh giá xem một điểm dữ liệu "thuộc về" cụm của nó tốt đến mức nào so với các cụm khác.
Công thức: Cho một điểm dữ liệu :
Trong đó:
là tổng số điểm dữ liệu trong toàn bộ tập dữ liệu
: Khoảng cách trung bình từ điểm đến tất cả các điểm khác trong cùng một cụm (độ gắn kết nội bộ).
: Khoảng cách trung bình từ điểm đến tất cả các điểm trong cụm gần nhất mà không thuộc về (độ tách biệt).
Giá trị hệ số Silhouette trung bình ():
: Điểm được phân cụm rất tốt.
: Điểm nằm ở ranh giới giữa 2 cụm.
: Điểm bị gán sai cụm.
Ta sẽ chọn có giá trị trung bình lớn nhất.
Phương pháp Thống kê Gap (Gap Statistic)
Phương pháp này so sánh logarit của WCSS từ dữ liệu thực với giá trị kỳ vọng của WCSS từ một tập dữ liệu tham chiếu (thường là phân bố đều, không có cấu trúc cụm).
Công thức tính Gap:
Trong đó:
: Là giá trị WCSS của dữ liệu thực với cụm.
tiêu biểu cho giá trị trung bình của thu được từ các mẫu dữ liệu phân bố ngẫu nhiên (Bootstrapping).
Cách xác định: Giá trị tối ưu là giá trị nhỏ nhất sao cho lớn hơn hoặc bằng giá trị của sau khi đã trừ đi một sai số tiêu chuẩn :
Phương pháp này giúp loại bỏ tính chủ quan của phương pháp Elbow bằng cách cung cấp một tiêu chuẩn toán học cụ thể để dừng lại.
Thuật toán K-means có nhiều ứng dụng trong thực tế, bao gồm:
Phân khúc khách hàng: Phân chia khách hàng thành các nhóm khác nhau dựa trên hành vi mua sắm, nhân khẩu học, v.v., để giúp doanh nghiệp đưa ra chiến lược tiếp thị phù hợp.
Phân loại tài liệu: Nhóm các tài liệu tương tự nhau lại để giúp tổ chức và tìm kiếm thông tin dễ dàng hơn.
Nén ảnh: Giảm số lượng màu sắc trong một bức ảnh bằng cách nhóm các pixel có màu tương tự lại với nhau.
Phát hiện bất thường: Xác định các điểm dữ liệu khác biệt so với phần còn lại của tập dữ liệu, có thể là dấu hiệu của sự bất thường hoặc gian lận.
No comments yet. Be the first to comment!