Thuật toán K-Means demo

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 k cụm khác nhau, trong đó k 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 n vector piRm:
S={P1(x11,x12,,x1m),P2(x21,x22,,x2m),,Pn(xn1,xn2,,xnm)}

Thuật toán được mô tả như sau:

  • Khởi tạo: Chọn ngẫu nhiên k điểm trong không gian dữ liệu làm tâm (centroid) của k cụm ban đầu. Ta ký hiệu các cụm lần lượt là C1,C2,,Ck với các centroid tương ứng C1,C2,,Ck.

  • Gán nhãn: Tính toán khoảng cách từ mỗi điểm dữ liệu PS đến từng tâm cụm Ci:

    • Khoảng cách Euclide từ điểm P(p1,p2,,pm) đến điểm Q(q1,q2,,qm) được cho bởi công thức d(P,Q)=j=1m(pjqj)2.

    • Một điểm P sẽ được gán vào cụm Ci nếu khoảng cách d(P,Ci) là nhỏ nhất (i=1,2,,k).

  • 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 P(p1,p2,,pm) thuộc cụm đó. Ci=(PCip1|Ci|,PCip2|Ci|,,PCipm|Ci|), với |Ci| là số lượng các điểm trong cụm Ci.

  • 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.

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.

Subscribe to SkyGLab

Scroll to Top