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 𝒜 𝒜 𝒜(𝒜) = ∑ ∑ |(𝒜𝒜 − 𝒜𝒜 )| 𝒜=1 𝒜=1 (1 11) 2
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
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
2
Trong đó, d(𝒜𝒜 ,𝒜𝒜) = |(𝒜𝒜 − 𝒜𝒜)| là khoảng cách Euclidean giữa𝒜𝒜 và𝒜𝒜 ;𝒜 là số đối
Kết thúc
Hình 1 9: Sơ đồ thuật toán phân cụm K-means