K-means (k-means clustering) là thuật toán học máy không giám sát kinh điển dùng để phân cụm dữ liệu, phân chia tập hợp n quan sát đa chiều thành k cụm phân biệt sao cho mỗi quan sát thuộc về cụm có tâm cụm gần nhất theo thước đo khoảng cách xác định.
Nguyên lý toán học và hàm mục tiêu của thuật toán
Mục tiêu toán học của phân cụm K-means là cực tiểu hóa tổng bình phương khoảng cách giữa các điểm dữ liệu và tâm cụm tương ứng trong nội bộ cụm (Within-Cluster Sum of Squares - WCSS), hay còn gọi là quán tính (inertia). Giả sử tập dữ liệu gồm $n$ điểm quan sát cần được phân chia thành $k$ tập hợp con rời nhau :
Hàm mục tiêu được định nghĩa chính thức bởi công thức tối ưu hóa:
Trong đó là vector trọng tâm hình học của cụm , được tính bằng trung bình cộng tọa độ của mọi phần tử trong cụm:
\mu_i = rac{1}{|S_i|} \sum_{x \in S_i} xBài toán tìm kiếm sự phân vùng tối ưu toàn cục để hàm $J$ đạt cực tiểu tuyệt đối là một bài toán NP-khó (NP-hard). Do đó, thuật toán K-means sử dụng phương pháp heuristic lặp cục bộ (thuật toán Lloyd) nhằm hội tụ về một nghiệm cực tiểu địa phương.
Quy trình vận hành từng bước theo thuật toán Lloyd
Thuật toán Lloyd chuẩn hóa tiến trình tối ưu hóa luân phiên qua bốn giai đoạn thực thi lặp:
- Khởi tạo tâm cụm: Chọn ngẫu nhiên $k$ điểm trong không gian đặc trưng làm vị trí ban đầu cho các tâm cụm .
- Bước gán nhãn (Assignment step): Gán mỗi điểm dữ liệu $x_j$ vào cụm $S_i$ có khoảng cách bình phương Euclid đến tâm cụm là nhỏ nhất: S_i^{(t)} = \left\{ x_j : \|x_j - \mu_i^{(t)}\|^2 \le \|x_j - \mu_l^{(t)}\|^2 \quad orall l, 1 \le l \le k ight\}
- Bước cập nhật tâm cụm (Update step): Tính toán lại vị trí mới của các tâm cụm dựa trên giá trị trung bình cộng tọa độ các điểm vừa được gán vào cụm đó ở bước 2.
- Kiểm tra điều kiện dừng (Convergence check): Lặp lại bước 2 và bước 3 cho đến khi vị trí các tâm cụm không còn dịch chuyển đáng kể (độ thay đổi nhỏ hơn ngưỡng sai số ), hoặc không còn điểm dữ liệu nào bị đổi nhãn cụm, hoặc số lượt lặp đạt giới hạn cực đại quy định.
Phương pháp xác định số cụm tối ưu và khởi tạo K-means++
Một trong những thách thức cốt lõi của K-means là đòi hỏi người dùng phải xác định trước số lượng cụm $k$. Hai kỹ thuật phổ biến nhất để lựa chọn $k$ hợp lý là:
- Phương pháp điểm khuỷu tay (Elbow method): Vẽ đồ thị giá trị hàm mất mát WCSS theo các giá trị $k$ tăng dần từ 1 đến $M$. Khi $k$ tăng, WCSS luôn giảm; điểm "khuỷu tay" xuất hiện tại vị trí mà tốc độ giảm WCSS đột ngột chậm lại, đại diện cho giá trị $k$ cân bằng giữa độ chính xác và độ phức tạp mô hình.
- Hệ số Silhouette (Silhouette coefficient): Đo lường mức độ tương đồng của một điểm với cụm của chính nó (tính gắn kết nội cụm $a$) so với các cụm lân cận (tính phân tách ngoại cụm $b$): s(i) = rac{b(i) - a(i)}{\max(a(i), b(i))} Giá trị . Điểm trung bình Silhouette của toàn bộ tập dữ liệu càng tiến gần 1 chứng tỏ cấu trúc phân cụm càng rõ nét và tách biệt.
Bên cạnh đó, giải thuật K-means++ (Arthur & Vassilvitskii, 2007) giải quyết triệt để vấn đề nhạy cảm với vị trí khởi tạo ban đầu. K-means++ chọn tâm đầu tiên ngẫu nhiên, sau đó chọn các tâm tiếp theo với xác suất tỷ lệ thuận với bình phương khoảng cách đến tâm gần nhất đã chọn , giúp các tâm ban đầu trải rộng đều và tăng tốc độ hội tụ gấp nhiều lần.
Bảng so sánh K-means với các thuật toán phân cụm khác
| Tiêu chí so sánh | K-means | Hierarchical Clustering | DBSCAN |
|---|---|---|---|
| Độ phức tạp thời gian | (Rất nhanh) | hoặc (Chậm) | với cây chỉ mục không gian |
| Hình dạng cụm nhận diện | Hình cầu lồi, kích thước tương đương | Cụm phân cấp cây đa dạng | Hình dạng bất kỳ, phi cầu, uốn lượn |
| Yêu cầu tham số | Cần biết trước số cụm $k$ | Số cụm hoặc khoảng cách cắt dendrogram | Bán kính và số điểm lân cận cực tiểu MinPts |
| Khả năng kháng nhiễu | Nhạy cảm với giá trị ngoại lai (outliers) | Phụ thuộc vào liên kết (linkage) | Tự động phân loại điểm nhiễu ngoại lai |