K-means là một trong những thuật toỏn học khụng giỏm sỏt đơn giản và đƣợc sử dụng rộng rói để giải quyết vấn đề phõn cụm dữ liệu. Thuật toỏn K-means do J.B. MacQueen đề xuất năm 1967, cho đến nay đó cú nhiều dạng biến đổi khỏc nhau của thuật toỏn này. Trong thuật toỏn K-means, cỏc cụm đƣợc định nghĩa dựa trờn trung tõm của cỏc phần tử. Phƣơng phỏp này dựa trờn độ đo khoảng cỏch của cỏc đối tƣợng dữ liệu trong cụm. Trong thực tế, nú đo khoảng cỏch của mỗi đối tƣợng dữ liệu tới trung tõm của cụm. Trung tõm của cụm được xem là giỏ trị trung bỡnh của cỏc đối tượng. Nhƣ vậy, nú cần khởi tạo một tập trung tõm cỏc cụm ban đầu, thụng qua đú lặp lại cỏc bƣớc nhƣ gỏn mỗi đối tƣợng vào cụm mà cú trung tõm gần nú nhất, tớnh toỏn lại trung tõm của mỗi cụm trờn cơ sở cú thờm cỏc đối tƣợng vừa gỏn mới. Quỏ trỡnh này dừng khi trung tõm hội tụ. Hỡnh 3.1 minh họa sự khởi tạo ranh giới cho cỏc cụm ban đầu trong khụng gian hai chiều [3].
Hỡnh 3.1. Xỏc định ranh giới của cỏc cụm khởi tạo
Trong phƣơng phỏp k-means, chọn một giỏ trị k và sau đú chọn ngẫu nhiờn k trung tõm của cỏc đối tƣợng dữ liệu. Tớnh toỏn khoảng cỏch giữa đối tƣợng dữ liệu và trung bỡnh mỗi cụm để tỡm kiếm phần tử nào là tƣơng tự và thờm vào cụm đú. Từ khoảng cỏch này cú thể tớnh toỏn trung bỡnh mới của cỏc cụm và lặp lại quỏ trỡnh đú cho đến khi mỗi một đối tƣợng dữ liệu là một bộ phận của một cụm k.
Mục đớch của thuật toỏn k-means là sinh k cụm dữ liệu {C1,C2,…,Ck} từ một tập dữ liệu chứa n đối tƣợng trong khụng gian d chiều Xi=(xi1,xi2,…,xid), i=1ữn, sao cho hàm tiờu chuẩn: E= ( )
1 2 i k i x Ci m x D đạt giỏ trị tối thiểu.
Trong đú, mi là trọng tõm của cụm Ci, D là khoảng cỏch giữa hai đối tƣợng.
Hỡnh 3.2. Tớnh toỏn trọng tõm của cỏc cụm mới
Trọng tõm của một cụm là một vectơ, trong đú giỏ trị của mỗi phần tử của nú là trung bỡnh cộng của cỏc thành phần tƣơng ứng của cỏc đối tƣợng dữ liệu trong cụm đang xột. Tham số đầu vào của thuật toỏn là số cụm k, tham số đầu ra của thuật toỏn là cỏc trọng tõm của cỏc cụm dữ liệu. Độ đo khoảng cỏch của cỏc đối tƣợng dữ liệu thƣờng dựng là khoảng cỏch Eclidean. Hàm tiờu chuẩn và độ đo khoảng cỏch cú thể đƣợc xỏc định cụ thể hơn tựy thuộc vào từng ứng dụng.
Thuật toỏn k-means bao gồm cỏc bước cơ bản sau:
Input: Số cụm k và cỏc trọng tõm cụm {mj}, j=1ữk.
Output: Cỏc cụm C[i] (i=1ữk) và hàm tiờu chuẩn E đạt giỏ trị tối thiểu. Begin
Bƣớc 1: Khởi tạo
Chọn k trọng tõm {mj} (j=1ữk) ban đầu trong khụng gian Rd (d là số chiều của dữ liệu). Việc lựa chọn cú thể ngẫu nhiờn hoặc theo kinh nghiệm.
Đối với mỗi điểm Xi (i=1ữk), tớnh toỏn khoảng cỏch của nú tới mỗi trọng tõm mj (j=1ữk), sau đú tỡm trọng tõm gần nhất đối với mỗi điểm.
Bƣớc 3: Cập nhập lại trọng tõm
Đối với mỗi (j=1ữk), cập nhập lại trọng tõm cụm mj bằng cỏch xỏc định trung bỡnh cộng của vectơ đối tượng dữ liệu.
Bƣớc 4: Điều kiện dừng
Lặp lại cỏc bước 2 và 3 cho đến khi cỏc trọng tõm của cụm khụng thay đổi.
End.
Cỏc bƣớc thực hiện k-means với k=2
Thuật toỏn k-means cú một số đặc điểm cần chỳ ý
Luụn cú k cụm dữ liệu
Luụn cú ớt nhất một đối tượng trong một cụm dữ liệu
Cỏc cụm khụng phõn cấp (khụng cú thứ bậc) và khụng bị chồng chộo lờn nhau.
Mọi thành viờn của một cụm là gần với chớnh cụm đú hơn bất cứ một cụm nào khỏc.
K-means biểu diễn cỏc cụm bởi cỏc trọng tõm của cỏc đối tƣợng trong cụm đú. Thuật toỏn k-means đƣợc chứng minh là hội tụ và cú độ phức tạp tớnh toỏn là O((3nkd)Tflop). Trong đú, n là số đối tƣợng dữ liệu, k là số cụm dữ liệu, d là số chiều, là số vũng lặp, Tflop là thời gian để thực hiện một phộp tớnh cơ sở nhƣ nhõn, chia,…Trong khi thi hành, một vấn đề là làm sao gỡ cỏc nỳt thắt trong cỏc trƣờng hợp mà ở đú cú nhiều trung tõm cú cựng khoảng cỏch với một đối tƣợng. Trong trƣờng hợp này, cú thể gỏn cỏc đối tƣợng ngẫu nhiờn cho một trong cỏc cụm thớch hợp hoặc xỏo trộn cỏc đối tƣợng để vị trớ mới của nú khụng gõy ra cỏc nỳt thắt. Nhƣ vậy, do k-means phõn tớch phõn cụm đơn giản nờn cú thể ỏp dụng đối với tập dữ liệu lớn. Tuy nhiờn, nhược điểm của k-means chỉ là ỏp dụng với dữ liệu cú thuộc tớnh số và rất phự hợp với cỏc cụm cú dạng hỡnh cầu, k-means cũn rất nhạy cảm với nhiễu và cỏc
phần tử ngoại lai trong dữ liệu.
Hơn nữa, chất lƣợng phõn cụm dữ liệu của thuật toỏn k-means phụ thuộc nhiều vào cỏc tham số đầu vào nhƣ: số cụm k và k trọng tõm ban đầu. Trong trƣờng hợp, cỏc trọng tõm khởi tạo ban đầu mà quỏ lệch so với cỏc trọng tõm tự nhiờn của cụm thỡ kết quả phõn cụm của k-means rất thấp, nghĩa là cỏc cụm đƣợc khỏm phỏ rất lệch so với thực tế. Trờn thực tế, chƣa cú một
giải phỏp tối ƣu nào để chọn cỏc tham số đầu vào, giải phỏp thƣờng đƣợc sử dụng nhất là thử nghiệm với cỏc giỏ trị đầu vào k khỏc nhau rồi chọn ra giải phỏp tốt nhất.
Hỡnh dạng cụm dữ liệu đƣợc khỏm phỏ bởi k-means nhƣ hỡnh 3.4
Hỡnh 3.4. Vớ dụ dạng cụm đƣợc khỏm phỏ bởi k-means