Sơ lược về K-means Clustering

Trong bài viết trước, chúng ta đã đề cập đến Linear Regression (hồi quy tuyến tính) là thuật toán đơn giản nhất trong Supervised Learning. Bài viết này chúng ta chuyển sang một thuật toán cơ bản trong Unsupervised Learning = thuật toán K-means Clustering (phân nhóm K-means)

Tổng quan về K-means Clustering

Trước hết ta sẽ tìm hiểu thuật toán K-means Clustering thông qua ví dụ sau:

Giả sử bạn lấy một bộ sưu tập ảnh của 10 người bạn của bạn. Bạn muốn sắp xếp chúng ra và nhóm chúng lại thành 10 nhóm riêng biệt cho 10 người bạn này. Bạn sẽ phân loại dựa trên đặc điểm khuôn mặt của họ mà bạn biết rất rõ. Nếu bạn muốn máy tính, phần mềm,… thực hiện công việc này, trong đó máy sẽ không biết gì về bức ảnh thuộc người bạn nào nhưng dựa trên đặc điểm khuôn mặt của họ, nó sẽ phân loại và nhóm chúng lại thành các nhóm khác nhau (giống như chức năng gắn thẻ bạn bè trên facebook vậy).

Thuật toán mà máy sử dụng ở đây là thuật toán cluster (thuật toán nhóm) nhưng chưa biết dữ liệu nào thuộc nhóm nào.

Và đây là thuật toán phân cụm sau khi được thực hiện:

Và giờ đây dữ liệu được vào đã được phân vùng thành 2 nhóm riêng biệt được bao quanh bởi màu xanh.

Ứng dụng

Thuật toán phân vùng K-means được ứng dụng rất nhiều trong các lĩnh vực khác nhau. Nó có thể phân khúc các nhóm khách hàng để gợi ý sản phẩm phù hợp với từng nhóm, công ty may mặc sản xuất các size áo nhất định phù hợp với từng nhóm người (dựa trên chiều cao và cân nặng)…

Các bước chia nhỏ dữ liệu

  • Bước 1: thuật toán chọn ngẫu nhiên 2 trọng tâm C1 và C2
  • Bước 2: tính toán khoảng cách từ mỗi điểm đến 2 trọng tâm đó. Nếu nó gần trọng tâm C1 hơn nó sẽ gán nhãn “0”, nếu gần trọng tâm C2 hơn nó sẽ gán nhãn “1”, tương tự nếu có nhiều trọng tâm hơn sẽ gán nhãn “2”, “3”,…

  • Bước 3: Tiếp theo chúng ta tính toán trung bình của tất cả các điểm màu xanh và đỏ riêng biệt. Kết quả này sẽ cho phép quyết định được trọng tâm mới. C1 và C2 sẽ được tái thiết lập vị trí mới với các điểm dữ liệu mới.

Cứ lặp đi lặp lại bước 2 và bước 3 như vậy ta sẽ có trọng tâm ở một điểm cố định.

2 Likes

Ồ, bài viết này dễ hiểu và hữu ích này @anon26170876
Anh thích phong cách viết như thế này. Nó vừa đủ, trực quan và dễ hiểu cho mọi độc giả @@@
Và nhớ bổ sung thêm nguồn trích dẫn tài liệu cho bài viết em nhé !!!

1 Like

Theo em được biết thì Unsupervised Learning thì tập dataset sẽ không có nhãn thì ở bước 2 nên chỉnh thành gán điểm này vào phân cụm … thì sẽ hợp lý hơn là gán nhãn ạ

1 Like