Đây là một loại thuật toán unsupervised algorithm giải quyết các vấn đề về phân nhóm. Cách thức của nó khá đơn giản : phân tách dữ liệu thành một nhóm các cluster ( giả sử k cluster) . Các điểm dữ liệu bên trong cluster là đồng nhất và không đồng nhất với các điểm dữ liệu của các nhóm khác.
Bạn có để ý vết mực bị đổ ra trên bàn không ? K-Means khá tương tự với việc này. Bạn nhìn vào vết mực và hình dạng lan rộng để giã mã có bao nhiêu cluster khác nhau / có bao nhiêu nhóm “population” ?

Cách mà K-Means
tạo nên các cluster
:
*k-means
chọn k
điểm cho mỗi cluster
và được gọi là trọng tâm.
- Mỗi điểm dữ liệu tạo thành một
cluster
với trọng tâm gần nhất - Tìm kiếm trọng tâm của mỗi
cluster
dựa trên các thành viên bên trong mỗicluster
. Ở đây chúng ta sẽ có các trọng tâm mới. - Khi có các trọng tậm mới, lặp lại bước 2 và bước 3. Tìm kiếm khoảng cách gần nhất của mỗi điểm dữ liệu tạo nên bởi các trọng tâm mới và được liên kết với
k-cluster
mới. Lặp lại quá trình này cho đến khi các trọng tâm hội tụ thành một điểm.
Cách thức tìm kiếm giá trị k
:
Trong K-Means
, chúng ta có các cluster
và mỗi cluster
có trọng tâm của nó. Tổng bình phương khác biệt giữa trọng tâm và các điểm dữ liệu trong cluster
tạo nên tổng giá trị bình phương chocluster
đó.
Chúng ta biết rằng khi số lượng cluster
được tăng lên, giá trị sẽ giảm đi nhưng nếu bạn quan sát kết qua, bạn sẽ thấy rằng tổng bình phương khoảng cách sẽ giảm mạnh đến một giá trị k
, sau đó nó sẽ giảm chậm đi. Tại đây, bạn có thể tìm kiếm số lượng tối ưu của cluster
– giá trị k
.
