Phân cụm K-means do MacQueen giới thiệu [69] là một trong những thuật toán học không giám sát đơn giản nhất để giải quyết vấn đề phân cụm. Tư tưởng của thuật toán K-means như sau:
Giả sử X là tập n đối tượng dữ liệu: X= {�1, �2, … , ��} và C là tập các
tâm cụm C = {�1, �1, …, ��} . Thuật toán này tìm cách phân tập các đối tượng đã cho vào K cụm dựa trên mức độ tương đồng của chúng sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm cụm là nhỏ nhất, được cho bởi phương trình (1.11). Về nguyên lý, có n đối tượng, mỗi đối tượng có m thuộc tính, các đối tượng được phân chia thành K cụm dựa trên các thuộc tính của đối tượng bằng việc áp dụng thuật toán K-means.
� � 2 ) �(� = ∑ ∑ |(��− ��)| =1 � �=1 (1.11) Trong đó, d(� , � ) = |
(� −�� )| là khoảng cách Euclidean giữa và � ; � là số đối
� � � � � �
tượng dữ liệu trong cụm i; K là số cụm được xác định trước.
Thuật toán phân cụm K-means được mô tả thành các bước và tóm tắt bởi sơ đồ khối như Hình 1.9 dưới đây.
Đầu vào: Tập dữ liệu {��}, số cụm K, (1 ≤ ≤ ) � �
Đầu ra: Các cụm ��(1 ≤ ≤ ) � � và giá trị hàm mục tiêu.
Bắt đầu
Bước 1- Khởi tạo: Chọn K tâm cụm {��} ban đầu trong không gian m chiều.
Bước 2- Tính khoảng cách
Đối với mỗi đối tượng ��tính khoảng cách từ nó tới mỗi tâm cụm {��}. Sau đó tìm tâm gần nhất đối với mỗi đối tượng bằng cách gán mỗi ��
∈
� nếu �(��, ��) < �(��, ��) , j≠ �.
Bước 3- Nhóm các đối tượng và cập nhật lại tâm cụm mới ��
Cập nhật tâm cụm �� bằng cách xác định trung bình cộng các vectơ đối tượng dữ liệu. � = 1 ∑� với 1 ≤ i ≤ K.
� � �=1 �
Điều kiện dừng: Lặp lại các Bước 2 và 3 cho đến khi các tâm cụm không đổi.
Kết thúc.
Hình 1.9: Sơ đồ thuật toán phân cụm K-means