Gom cụm dữ liệu hay còn gọi là phân cụm, phân vùng dữ liệu là phương pháp gom một tập các ứng viên vào các cụm. Đây là phương pháp học không giám sát. Gom cụm dữ liệu được ứng dụng trong rất nhiều lĩnh vực khác nhau như là khai phá dữ liệu, học máy, xử lý ảnh,…
K-Means là thuật toán được sử dụng phổ biến trong trong hướng tiếp cận phân cụm phân hoạch (Partitional clustering). Ý tưởng chính của phương pháp phân cụm phân hoạch là phân một tập dữ liệu có n phần tử cho trước thành k nhóm dữ liệu sao cho mỗi phần tử dữ liệu chỉ thuộc về một nhóm dữ liệu và mỗi nhóm dữ liệu có tối thiểu một phần tử dữ liệu.
Thuật toán k-means có độ phức tạp thấp O(tkn) với t là số lần lặp, k là số cụm, n là số đối tượng sẽ gom cụm. Thuật toán này có nhiều biến thể khác nhau nhưng được đưa ra đầu tiên bởi J.B ac ueen vào năm 1967. Đầu vào của thuật toán này là một tập gồm n mẫu và một số nguyên k. Cần phân n đối tượng này thành k cụm sao cho sự giống nhau giữa các mẫu trong cùng cụm là cao hơn là giữa các đối tượng khác cụm.
Tư tưởng chính của thuật toán này là đầu tiên chọn ngẫu nhiên k mẫu, mỗi mẫu này coi như biểu diễn một cụm, như vậy lúc này trong mỗi cụm thì mẫu đó cũng là
tâm của cụm. Các mẫu còn lại được gán vào một cụm nào đó trong k cụm đã có sao cho tổng khoảng cách từ mẫu đó đến tâm của nhóm là nhỏ nhất. Sau đó tính lại tâm cho các nhóm và lặp lại quá trình đó cho đến khi hàm tiêu chuẩn hội tụ. Hàm tiêu chuẩn được dùng phổ biến nhất là hàm tiêu chuẩn bình phương sai.
Thuật toán k-means được mô tả cụ thể như sau:
Hình 3.3.1: Lưu đồ mô tả thuật toán K-means
Bước 1: Chọn ngẫu nhiên k mẫu vào k cụm. Coi tâm của cụm là chính là mẫu có trong cụm.
Bước 2: Tính khoảng cách giữa các mẫu còn lại đến k tâm
Bước 3: Gán các mẫu vào cụm sao cho khoảng cách từ mẫu đến tâm cụm là nhỏ nhất
Khi không có mẫu nào duy chuyển khỏi cụm
Kết thúc Bắt đầu Chọn K cụm Chọn tâm cho cụm Tính khoảng cách từ mẫu đến tâm cụm Gom cụm dựa trên khoảng cách
Bước 4:Nếu các cụm không có sự thay đổi nào sau khi thực hiện bước 3 thì chuyển sang bước 5, ngược lại thì quay lại bước 2.
Bước 5: thuật toán kết thúc.