K-Means Clustering là thuật toán phân cụm cơ bản nhất trong Unsupervised Learning. Mục tiêu: phân dữ liệu thành K nhóm (clusters) sao cho các điểm trong cùng cluster có tính chất gần nhau, còn các cluster khác nhau thì cách xa nhau.
Thuật toán
- Chọn K điểm trọng tâm (centroids) ngẫu nhiên trong không gian dữ liệu
- Gán mỗi điểm dữ liệu vào cluster của centroid gần nó nhất
- Tính lại centroid mới = trung bình vị trí của tất cả điểm trong cluster đó
- Lặp bước 2–3 cho đến khi assignments không thay đổi (convergence)
- Để dự đoán cluster cho điểm mới: tìm centroid gần nhất
Những điều cần lưu ý
Chọn K: Không có công thức cứng. Cách thực tế: tăng K dần, vẽ đồ thị squared error (tổng khoảng cách điểm → centroid của nó). Tìm “elbow point” — nơi error ngừng giảm mạnh.
Local minima: Centroid khởi tạo ngẫu nhiên → kết quả có thể khác nhau mỗi lần chạy. Giải pháp: chạy nhiều lần với random seeds khác nhau, chọn kết quả tốt nhất.
Labeling: K-Means không tự gán ý nghĩa cho từng cluster. Việc hiểu “cluster này là gì” hoàn toàn là công việc của người phân tích — cần domain knowledge để interpret kết quả.
Connections
- machine-learning — K-Means là thuật toán unsupervised learning điển hình
- overfitting-underfitting — K-Means ít bị overfitting hơn supervised methods, nhưng chọn K sai vẫn gây underfitting
Sources
- k_means_clustering (archived)