Khái niệm về bài toán phân cụm: Phân cụm dữ liệu là một kỹ thuật trong khai phá dữ liệu, nhằm đưa ra các cụm mà các phần tử trong cùng một cụm có độ tương đồng cao và các phần tử thuộc các cụm khác nhau lại có độ tương đồng thấp.
Bài toán phân cụm thường được thực hiện khi chúng ta không biết được nội dung thông tin của các thành phần thuộc cụm để định nghĩa trước các lớp. Vì lý do này mà công việc phân cụm thường được truyền thống nhìn nhận dưới con mắt của học máy không giám sát, phương pháp học mà khi ta cho trước một mẫu chỉ gồm các đối tượng cần tìm một cấu trúc đáng quan tâm của dữ liệu và nhóm lại các dữ liệu giống nhau.
.
Hình 13 - Quy trình phân cụm
Một số phương pháp phân cụm cơ bản:
• Phân cụm phân hoạch (phân cụm phẳng):
Phương pháp này chia tập gồm n phần tử thành tập k tập con rời nhau, trong đó k cho trước. Với phương pháp này, ban đầu người ta khởi tạo một phân hoạch ban đầu cho tập dữ liệu theo một phép gán ngẫu nhiên hoặc dựa trên một phương pháp kinh nghiệm (hueristic), sau đó tinh chỉnh lại các cụm cho đến khi thu được một phân hoạch mong muốn thỏa mãn một ràng buộc cho trước . Tại mỗi bước thuật toán phân cụm cố
wij = [1 + log(tfij)] log( ij tf m ) nếu tf ij > 0 0 nếu tfij = 0
27
gắng cải tiến chất lượng phân cụm bằng cách tính độ đo tương tự giữa các đối tượng dữ liệu và sắp xếp các giá trị này, sau đó thuật toán lựa chọn một giá trị trong dãy sắp xếp sao cho hàm tiêu chuẩn đạt giá trị tối thiểu. Thuật toán tiêu biểu cho phương pháp này là K-Means. Ví dụ về thuật toán K-means:
Hình 14 - Ví dụ về thuật toán K-means • Phân cụm dữ liệu dựa trên mật độ:
Phương pháp này dựa vào mật độ của các đối tượng để xác định các cụm dữ liệu và có thể tìm ra các cụm dữ liệu với hình thù bất kỳ. Trong phương pháp phân cụm này, khi một cụm dữ liệu đã được xác định thì nó tiếp tục phát triển thêm các đối tượng mới miễn là các đối tượng lân cận của đối tượng này phải lớn hơn một ngưỡng về mật độ cho trước. Tuy nhiên việc xác định trước các tham số mật độ của thuật toán là rất khó khăn, trong khi các tham số này có ảnh hưởng quan trọng đến chất lượng phân cụm. Thuật toán tiêu biểu cho phương pháp phân cụm này là DB-Scan. Hình dưới đây là một số hình ảnh ví dụ về phân cụm dựa trên mật độ.
Hình 15 - Hình vẽ minh họa cho phân cụm dữ liệu dựa trên mật độ. • Phân cụm phân cấp
Phương pháp phân cụm cây phân cấp xây dựng một cấu trúc cây phân cấp cho các tài liệu, và có hai phương pháp chính là xây dựng cây theo hướng từ trên xuống
28
bottom-up, đầu tiên mỗi phần tử được coi như một cụm phân biệt và sau đó tiến hành ghép lần lượt 2 cụm giống nhau nhiều nhất hay khác nhau ít nhất làm một đến khi tất cả các cụm được ghép vào một cụm duy nhất chứa tất cả các phần tử. Phân cụm phân cấp bottom-up được gọi là hierachical agglomerative clustering (HAC).
Hình vẽ minh họa cho thuật toán HAC:
Hình 16 - Sơ đồ các phân tử trước khi phân cụm
Hình 17 - Sơ đồ các phần tử sau khi phân cụm phân cấp
Còn với phân cụm phân cấp top-down, trạng thái ban đầu là tất cả các đối tượng thuộc vào cùng một cụm. Tại mỗi vòng lặp thành công, một cụm được tách thành các cụm nhỏ hơn theo giá trị của một phép đo độ tương tự nào đó cho đến khi mỗi đối tượng là một cụm, hoặc cho đến khi điều kiện dừng thỏa mãn. Cách tiếp cận này sử dụng chiến lược chia để trị trong quá trình phân cụm.
Chi tiết về HAC
Thuật toán HAC cho phân cụm Web[2] Tham số:
29 G là tập hợp các cụm.
S là tập các phân hợp các trang Web cần phân cụm.
k là tham sốđể dừng thuật tóan khi số lượng cụm mong muốn đã được tạo ra. q là tham số ngưỡng dừng thuật toán khi độ tương tự giữa 2 cụm nhỏ hơn một ngưỡng nào đó.
1. G <- {{d} | d thuộc S } (Khởi tạo G là tập các cụm chỉ gồm một trang Web trong tập S)
2. Nếu |G| < k thì dừng thuật toán ( Đã được số lượng cụm mong muốn ).
3. Tìm 2 cụm Si và Sj thuộc G sao cho (i,j) = arg max(i,j) sim (Si,Sj) ( Tìm 2 cụm có độ tương tự lớn nhất ).
4. Nếu sim(Si,Sj) < q thì dừng thuật tóan ( độ tương tự của 2 cụm nhở hơn ngưỡng cho phép )
5. Loại bỏ Si,Sj khỏi G
6. G = G hợp { Si , Sj } (ghép 2 cụm Si,Sj và đưa vào trong tập G ) 7. Nhảy đến bước 2
Một sốđộđo khoảng cách trong thuật toán HAC:
- Single link hay Single-linkage:
Với phương pháp này, khoảng cách giữa các cụm được định nghĩa là khoảng cách giữa những đối tượng giống nhau nhất giữa 2 cụm:
D(r,s) = min(d(i,j)) (3.6)
Trong đó: r,s là 2 cụm.
i,j là 2 đối tượng bất kỳ thuộc 2 cụm r,s.
Với 2 cụm, ta tính tất cả các khoảng cách giữa 2 phần tử bất kỳ thuộc 2 cụm đó và khoảng cách nhỏ nhất tìm được chính là khoảng cách giữa 2 cụm đó. Tại mỗi bước, 2 cụm gần nhau nhất sẽđược chọn để ghép lại với nhau.
30
Hình 18 - Phân cụm với Single-linkage
- Complete-link:
Với 2 cụm, ta tính tất cả các khoảng cách giữa 2 phần tử bất kỳ thuộc 2 cụm đó và khoảng cách lớn nhất tìm được chính là khoảng cách giữa 2 cụm đó. Tại mỗi bước, 2 cụm gần nhau nhất sẽđược chọn để ghép lại với nhau.
D(r,s) = max(d(i,j)) (3.7)
Trong đó: r,s là 2 cụm.
i,j là 2 đối tượng bất kỳ thuộc 2 cụm r,s.
Hình 19 - Phân cụm với Complete-linkage
- Group average agglomerative
Phương pháp phân cụm GAAC tính độ tương tự trung bình SIM-GA của tất cả các cặp văn bản khi ghép tất cả các văn bản của hai cụm vào làm một, trong đó bao gồm cả những cặp thuộc cùng một cụm.
31
Hình 20 - Trung bình các khoảng cách trong GAAC
(3.8) Trong đó Ni là số văn bản của cụm ωi , Nj là số văn bản của cụm ωj, ⎯⎯→d là vector đã được chuẩn hóa của văn bản d.