Thuật toán HAC (Hierarchical Agglomerative Clustering) [43] là một phương pháp gom cụm phân cấp phổ biến. HAC xây dựng cấu trúc phân cấp từ dưới lên bằng cách lặp đi lặp lại quá trình tính độ tương tự giữa tất cả các cặp cụm và gộp hai cụm gần nhau nhất thành một.
Các bước của thuật toán HAC có thể mô tả như trong Hình 1.3. Sơ đồ nhánh (dendrograms) dùng để biểu diễn cấu trúc phân cấp của các cụm. Sơ đồ nhánh cho phép tính số cụm dựa trên khoảng cách các cụm đã gộp. Hình 1.4 bên dưới minh họa sơ đồ nhánh của quá trình gom cụm cho bốn văn bản.
1. Chọn k đối tượng dữ liệu làm k trung tâm nhóm.
2. Gán tất cả các đối tượng vào nhóm có tâm gần nó nhất. 3. Xác định lại trung tâm nhóm.
1. Gán mỗi văn bản vào một cụm.
2. Tính toán độ tương tự giữa các cặp cụm. Lưu trữ độ tương tự giữa các cụm vào ma trận độ tương tự với vị trí ij thể hiện độ tương tự giữa cụm thứ i và thứ j. 3. Gộp hai cụm có khoảng cách nhỏ nhất (tức là giống nhau nhất) thành cụm mới. 4. Cập nhật ma trận độ tương tự với các giá trị tương tự giữa cụm mới và các cụm
ban đầu.
5. Lặp lại bước 3 và 4 cho đến khi chỉ còn một cụm duy nhất
Hình 1.3. Thuật toán HAC
Hình 1.4. Sơ đồ nhánh đơn giản
Khi tính toán khoảng cách giữa các cụm, có nhiều phương pháp tính độ tương tự như sự liên kết cực tiểu (single linkage), sự liên kiết cực đại (complete linkage) hay sự liên kết trung bình (average linkage). Kết quả phân cụm sẽ phụ thuộc vào độ đo tương tự sử dụng.
HAC xây dựng các cụm có chất lượng tốt nhưng độ phức tạp tính toán cao. Theo các nghiên cứu [75], [87], phương pháp sử dụng liên kết trung bình dường như cho kết quả khá hơn các phương pháp khác. Phương pháp tính độ tương tự dựa trên liên kết cực tiểu mặc dù là phương pháp duy nhất phù hợp với các tập dữ liệu văn bản lớn, nhưng lại không cho kết quả gom cụm cao.
Thuật toán HAC không có khả năng thực hiện việc điều chỉnh một khi việc gộp các cụm đã tiến hành. Tính không linh hoạt này thường làm giảm độ chính xác gom
nhiên, nhược điểm lớn nhất của HAC là đòi hỏi nhiều bộ nhớ để lưu trữ ma trận tương tự gồm n(n-1)/2 thành phần với n – số văn bản.
Với thời gian thực thi O(n2) – tồi hơn nhiều so với thời gian thực thi tuyến tính của k-means nên khó áp dụng HAC cho các tập văn bản lớn. Theo [87], khi so sánh kết quả gom cụm của k-means và HAC trên 8 bộ dữ liệu khác nhau đều cho thấy k- means cho kết quả tốt hơn. Ưu điểm của HAC là hiệu quả hơn k-means khi làm việc với dữ liệu nhiễu và cá biệt.