2. Những nội dung nghiên cứu chính
2.4 Thuật toán H-Kmeans
Trong thuật toán K-means ta cần phải xác định trước số lượng cụm cần phân hoạch, việc chọn được giá trị K tốt sẽ có thể giúp tăng tốc được thuật toán. Tuy nhiên, trong thực tế không phải lúc nào cũng xác định được số lượng cụm, rất nhiều tình huống mà số lượng cụm chưa được xác định một cách chính xác. Ví dụ với bài toán phân cụm một dữ liệu gồm các đối tượng sinh viên trong một lớp: nếu ta phân loại sinh viên theo giới tính thì số cụm cần phân K = 2 là một giá trị chắc chắn, tuy nhiên nếu ta phân loại sinh viên theo quê quán thì số cụm K cần phân là mập mờ.
Thuật toán Seeded-Kmeans là một thuật toán cải tiến của thuật toán K- Means, có nhiệm vụ sử dụng thông tin bổ trợ từ tập giống Sh để khởi tạo K cho thuật toán K-Means. Tức là, thay vì phải khởi tạo K cụm ngẫu nhiên chúng ta khởi tạo K cụm từ tập giống. Với tập giống là những phần tử đã được dán nhãn,
44
do người thực hiện phân cụm xác định từ kinh nghiệm hoặc từ những tiêu chuẩn cụ thể đối với từng mục đích phân cụm [7].
Thuật toán Seeded-Kmeans bằng cách khởi tạo K cụm từ tập giống đã giúp cho người dùng có thể can thiệp và điều chỉnh quá trình phân cụm dữ liệu nhằm đạt được một kết quả phân cụm theo ý muốn của mình một cách nhanh nhất. Nhờ thông tin bổ trợ từ tập giống mà thuật toán Seeded-Kmeans có nhiều ưu điểm vượt trội so với thuật toán K-Means như: Kích cỡ của tập dữ liệu, độ tách bạch của tập dữ liệu, khả năng kháng nhiễu. Tuy nhiên Seeded-Kmeans vẫn còn tồn tại một nhược điểm rất lớn của K-Means là số cụm K được xác định nhờ quan sát tập giống có thể ít hơn số cụm thực tế và khi đó chất lượng phân cụm sẽ thấp. Thuật toán K-Means phân cấp (H-Kmeans) đã giải quyết được nhược điểm này của thuật toán Seeded-Kmeans [7].
45
Thuật toán K-Means phân cấp do hai tác giả: Hoàng Xuân Huấn và Nguyễn Trung Thông nghiên cứu và đề xuất. Đây có thể nói là một thuật toán cải tiến của Seeded-Kmeans bằng cách kết hợp thuật toán Seeded-Kmeans với phương pháp phân cụm phân cấp. Một tập dữ liệu X =x1,...,xN,xid và tập giống SX, trong đó số lượng cụm K được đặt ra cho bài toán phân cụm là một giá trị không được xác định chắc chắn. Thuật toán K-Means phân cấp có nhiệm vụ dự đoán một giá trị K hợp lý nhất mà không làm đỗ vỡ cấu trúc cụm. Số cụm K được tìm trong khoảng [Kmin, Kmax]. Để tìm K chúng ta dùng mô hình phân cấp (Top-down) để tiến hành tách cụm và dự đoán K. Mà không dùng phương pháp lặp lại nhiều lần thuật toán SeededK-Means vì nó sẽ làm cho cấu trúc cụm bị xáo trộn và ta không biết khi nào thì giá trị K là tốt nhất. Qua các thí nghiệm hai tác giả đã chứng minh được rằng phương pháp K-Means phân cấp có chất lượng tốt hơn phương pháp SeededK-Means cả về phương diện tìm số cụm K, cả về cấu trúc cụm.
Thuật toán K-Means phân cấp lấy Kmin bằng số cụm giống (số loại nhãn lớp của tập giống) bởi vì trong phân cụm nửa giám sát dựa trên tập giống thì tập giống đó chỉ là một phần thông tin nhỏ nằm trong tập dữ liệu lớn X cần phân cụm, do vậy số cụm giống luôn là giá trị nhỏ nhất trong các giá trị có thể có của số cụm K cần phân hoạch từ X. Kmax được cung cấp bởi người dùng và làm ngưỡng của điều kiện dừng cho thuật toán K-Means phân cấp. Và qua thí nghiệm hai tác giả đã chứng minh được rằng việc xác định Kmax không ảnh hưởng nhiều đến chất lượng của thuật toán K-Means phân cấp, và khi Kmax đạt đến một giá trị nhất định thì số cụm K dự đoán không thay đổi nữa.
Trong K-Means phân cấp, tiêu chuẩn BIC được dùng ở hai công đoạn: - Chọn mô hình cha hoặc mô hình con;
- Chọn mô hình chứa các cụm cũ hay mô hình chứa các cụm mới (đây là một điều kiện dừng thuật toán) [7].
46
* Tiêu chuẩn BIC (Bayesian Information Criterion)
Cho một tập dữ liệu X =x1,...,xNvà tập hợp các mô hình Mi khác nhau.
Với thuật toán K-Means phân cấp thì mỗi Mi ứng với một số lượng cụm K
khác nhau. Nhiệm vụ đặt ra là phải chọn mô hình tốt nhất trong các mô hình
i
M đó. Để đánh giá mô hình Mi người ta dùng tiêu chuẩn BIC được xác đinh
như sau :
ˆ
( i) i.log 2 ln ( ( )) (2)i
BIC M = −p N+ l X (2.12)
Trong đó:
Mi là mô hình thứ i cần tính giá trị BIC; pi là số lượng tham số trong mô hình Mi; N là cỡ của tập dữ liệu X (số đối tượng trong tập dữ liệu); l Xˆ ( )i là likelihood của tập dữ liệu X theo mô hình thứ i tại điểm cực đại likelihood.
Công thức (2.10) cho thấy BIC gồm 2 thành phần: pi.logN và ln ( ( ))ˆ
i
l X . Như chúng ta đã biết, sự phức tạp (complexity) của một mô hình càng lớn khi số lượng tham số của mô hình đó càng tăng. Do đó thành phần .logpi N phản
ánh sự phức tạp của mô hình Mi và sự phức tạp đó tăng tuyến tính theo số
lượng tham số pi (vì N là không đổi). Trong khi đó thành phần ln ( ( ))ˆ
i
l X đánh giá chất lượng bố trí (phù hợp) của các đối tượng dữ liệu trong mô hình Mi.
Như vậy BIC phản ánh tính đơn giản của một mô hình và sự bố trí phù hợp các đối tượng dữ liệu trong mô hình đó. Khi đó mô hình Mi được xem là tốt
nhất nếu nó có giá trị BIC M( i) lớn nhất.
Thuật toán K-Means phân cấp gồm 3 bước chính sau:
Bước1 : Chạy thuật toán Seeded-KMeans để khởi ra Kmin cụm ban đầu (Kmin là số cụm giống)
Bước 2: Với mỗi cụm trong tập cụm hiện thời tiến hành tách đôi thông qua mô hình phân cấp top-down và tiêu chuẩn BIC.
47
Bước 3: Lặp lại bước 2 cho đến khi BIC tổng thể (Total_BIC) không đổi hoặc số cụm hiện tại lớn hơn hoặc bằng Kmax [7].
Các hình 2.6, 2.7, 2.8, 2.9 minh hoạ quá trình thực hiện thuật toán H- Kmeans với Kmin = 3:
Hình 2.8: Seeded-Kmeans khởi tạo 3 cụm ban đầu
Hình 2.9: Dùng 2-KMeans để chia các cụm cha thành hai cụm con
49