Thuật toán phân hoạch là một thuật toán phân cụm có từ rất lâu và khá phổ biến trước khi xuất hiện lĩnh vực khai phá dữ liệu [15]. Phân cụm không thứ bậc hoặc phân cụm theo phân hoạch (nonhierarchy or partition clustering) chia cơ sở dữ liệu bằng cách xác định trước các đối tượng đại diện (đối tượng nhân) của các cụm. Kế tiếp mỗi đối tượng dữ liệu sẽ được đưa vào cụm mà khoảng cách từ đối
tượng dữ liệu đến đối tượng đại diện của cụm là nhỏ nhất. Sau mỗi bước thì đối tượng đại diện của mỗi cụm có thể được xác định lại dựa vào các đối tượng dữ liệu thuộc cụm đó. Mặc dù biểu diễn các cụm dữ liệu khác nhau, tuy nhiên các thuật toán đều có cách tiếp cận chung khi tính toán các giải pháp.
Ý tưởng của phương pháp phân hoạch như sau:
Cho tập D gồm n đối tượng, và một tham số đầu vào k được xác định bởi người dùng. Thuật toán phân hoạch sẽ chọn k đối tượng đại diện cho k cụm (k đối
tượng đại diện có thể được chọn ngẫu nhiên hoặc theo một tiêu chuẩn của người sử dụng). Với một đối tượng dữ liệu q sẽ được đưa vào cụm có đối tượng đại diện gần với q nhất. Sau đó, đối tượng đại diện của mỗi cụm sẽ được tính lại dựa vào những điểm dữ liệu thuộc cụm đó. Thông thường thì đối tượng đại diện được xác định sao cho khoảng cách từ đối tượng đại diện đến điểm xa nhất là nhỏ nhất có thể được.
Hình dưới mô tả quá trình phân hoạch với k=3. Khởi tạo bởi hình A với 3 đối tượng đại diện là 3 điểm đậm được lựa chọn ngẫu nhiên. Kế tiếp mỗi đối tượng dữ liệu được đưa vào cụm mà khoảng cách từ điểm đó tới đối tượng đại diện của cụm là nhỏ nhất. Với mỗi cụm tìm đối tượng đại diện cho cụm đó (lấy đối tượng dữ liệu mới là điểm trung bình của tất cả các đối tượng dữ liệu thuộc cụm). Quá trình trên được lặp lại cho đến khi các đối tượng đại diện của tất cả các cụm là không thay đổi.
Mô hình thuật toán phân cụm phân hoạch
Đầu vào: Số cụm k và CSDL D gồm n đối tượng.
Đầu ra: tập các cụm.
Partition(D, k);
1. Chọn ngẫu nhiên k tâm bất kỳ O0. Đặt i = 0.
2. Với mỗi điểm dữ liệu p ∈ D thì tìm đối tượng đại diện gần nhất và đưa p vào cụm đó.
3. Tính lại đối tượng đại diện của các cụm Oi+1 dựa vào các điểm dữ liệu thuộc cụm.
4. Nếu Oi+1 = Oi thì dừng lại. Trong trường hợp ngược lại i = i+1 và quay lại 2. Oi = {o1(i), o2(i),…, ok(i)} là tập các đối tượng đại diện của k cụm.
Với phương pháp này, số cụm được thiết lập là đặc trưng được lựa chọn trước. Phương pháp phân hoạch thích hợp với bài toán tìm các cụm trong không gian 2D. Ngoài ra, phương pháp xem xét đến khoảng cách cơ bản giữa các điểm dữ liệu để xác định chúng có quan hệ gần nhau, hoặc không gần nhau hay không có quan hệ.
Nhược điểm của phương pháp này là đòi hỏi phải đưa vào tham số k và không xử lý trên bộ dữ liệu thuộc cụm có hình dạng phức tạp hoặc mật độ phân bố dày đặc. Thêm vào đó, thuật toán có độ phức tạp tính toán lớn khi cần xác định kết quả tối ưu.
Các thuật toán trong phương pháp phân hoạch: k-means, PAM (Partitioning
Around Medoids), CLARA (Clustering LARge Application), CLARANS
(Clustering Large Applications based upon RANdomized Search),... Dưới đây trình bày 3 trong số các thuật toán điển hình trong phương pháp phân hoạch.
2.6.1.1. Thuật toán k-means
Thuật ngữ “k-means” được J. MacQueen giới thiệu vào năm 1967 và phát triển dựa trên ý tưởng của H.Steinhaus đề xuất năm 1956. Thuật toán này sử dụng giá trị trung bình (mean) của các đối tượng trong cụm làm tâm của cụm đó. Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng đã cho
vào K cụm (K là số các cụm được xác đinh trước, K nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm cụm là nhỏ nhất.
Tổng bình phương khoảng cách giữa các đối tượng đến tâm cụm còn gọi là hàm tiêu chuẩn (criterion function) được tính bởi công thức:
2 1 ∑ ∑ = ∈ − = k i x Ci i m x E
Trong đó, x là một điểm, mi là giá trị trung bình của cụm Ci. Thuật toán k-means chi tiết như sau:
Đầu vào: Số các cụm k, cơ sở dữ liệu gồm n đối tượng Đầu ra: Tập k cụm mà có giá trị hàm tiêu chuẩn E nhỏ nhất. Phương pháp:
B1: Khởi tạo k điểm trung tâm cụm bằng cách chọn k đối tượng tùy ý
B2: Lặp các bước
B2.1. Gán mỗi đối tượng vào cụm có trung tâm gần đối tượng đó nhất, hình thành một tập các cụm mới
B2.2. Tính lại giá trị E của mỗi cụm theo các đối tượng mới thu được sau bước B2.1.
B3. Thuật toán dừng khi giá trị E không thay đổi.
Tại bước 1, thực hiện chọn ngẫu nhiên k điểm từ cơ sở dữ liệu các đối tượng cần phân cụm là điểm tâm cho k cụm. Sau đó, thực hiện lần lượt tính khoảng cách từ điểm tâm tới các điểm, so sánh xem giá trị nào nhỏ hơn (có nghĩa gần tâm hơn) thì gán điểm đó vào cụm chứa điểm tâm đó. Tiếp đến tính lại giá trị hàm tiêu chuẩn
E, nếu giá trị mới nhỏ hơn giá trị cũ thì thay đổi giá trị E. Thuật toán lặp lại các
bước cho đến khi giá trị E không thay đổi nữa. Để tính khoảng cách giữa điểm tâm tới các điểm, dùng độ đo khoảng cách Euclidean.
Hình 2.6: Ví dụ về một số hình dạng cụm dữ liệu được khám phá bởi K-means
Nhược điểm của thuật toán là chỉ áp dụng với dữ liệu có thuộc tính số và khám phá các cụm có dạng hình cầu, không thích hợp với việc tìm các cụm có hình dáng không lồi hay các cụm có hình dáng khác xa nhau, nhạy cảm với các phần tử ngoại lai, phần tử nhiễu, phần tử cận biên cụm. Với các phần tử như vậy có thể gây ảnh hưởng đáng kể đến giá trị trung bình. Việc chọn lựa tập điểm trung tâm ban đầu cũng ảnh hưởng nhiều đến chất lượng cụm sinh ra [14]. 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 sau đó chon giải pháp tốt nhất.
Thuật toán k-means được xếp vào lớp bài toán NP, do vậy để phát triển thuật toán này người ta kết hợp với phỏng đoán (heuristic).
Trong quá trình xử lý của thuật toán, dữ liệu được tổ chức theo cây K-D tree để tăng tốc độ tìm kiếm. Thuật toán này được hỗ trợ trong hầu hết các công cụ phân cụm phổ biến dùng trong các ứng dụng khoa học và công nghiệp.
2.6.1.2. Thuật toán k-medoids
Mỗi cụm được biểu diễn bởi một điểm/ đối tượng thuộc cụm đó. Đây là giải pháp đơn giản vì phù hợp với mọi kiểu thuộc tính. Khi một đối tượng được chọn
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 K=2 Chọn k đối tượng trung tâm tùy ý
Gán mỗi đối tượng vào các cụm Cập nhật lại trọng tâm Gán lại các đối tượng
Cập nhật lại trọng
tâm
làm trọng tâm của cụm, cụm được định nghĩa là tập con các điểm gần điểm trọng tâm đó. Mục tiêu đặt ra là tính khoảng cách trung bình hoặc sử dụng hàm tính độ tương tự bất kỳ giữa các đối tượng và trọng tâm của nó.
Các bước trong thuật toán k-medoids gần giống như thuật toán k-means, trong đó giá trị k chính là k đối tượng được chọn ngẫu nhiên làm trọng tâm cụm. Phiên bản điển hình cho k-medoids là thuật toán PAM (Partitioning Around Medoids) gồm các bước như sau
Phương pháp:
B1: Lấy ngẫu nhiên k đối tượng tùy ý làm trọng tâm của k cụm (n>k)
B2: Lặp các bước
B2.1. Gán các đối tượng vào cụm mà có độ tương tự gần với trọng tâm của cụm đó
B2.2.. Chọn ngẫu nhiên đối tượng O’ thuộc n-k
B2.3. Tính tổng chi phí S để chuyển từ điểm trọng tâm cũ sang O’
B2.4. Nếu S<0 thì chuyển điểm trọng tâm sang O’
B5. Thuật toán dừng khi tập các đối tượng k không thay đổi.
Tại bước 2.1, để tính độ đo tương tự có thể dùng khoảng cách Euclidean,
Manhattan hay Minkowski. Thuật toán này chú tâm đến việc tìm cách thay thế các
đối tượng trọng tâm ban đầu bằng n-k đối tượng còn lại. Nếu không có sự thay thế xảy ra, thuật toán dừng. Bước 2.3 tính độ lệch E giữa trọng tâm cụm với đối tượng thuộc cụm đó. Do vậy, thuật toán này thực hiện việc tính E là n-k lần tương ứng với việc so sánh với n-k điểm, nên thuật toán thực hiện tốn thời gian nếu số đối tượng cần phân cụm lớn.
Để cải tiến nhược điểm của thuật toán PAM, thuật toán CLARA (Clustering
LARge Application) ra đời vào năm 1990 bởi Kaufman và Rousseeuw [15]. Thay vì
thực hiện so sánh với n-k đối tượng còn lại, CLARA chỉ thực hiện trên một phần dữ liệu mẫu được chọn từ tập dữ liệu ban đầu. CLARA chọn từng nhóm đối tượng, sau đó dùng thuật toán PAM trên nhóm đối tượng đó. Kết quả trả về là các cụm tốt
nhất. Nhược điểm của CLARA nếu mẫu được chọn không chứa k điểm trọng tâm
tốt nhất thì CLARA không đưa ra cách phân cụm tốt nhất. Năm 1994, Raymond T. Ng và Jiawei H. giới thiệu thuật toán CLARANS và đến năm 2002 thuật toán này được công bố là một phương pháp gom cụm hiệu quả trên cơ sở dữ liệu lớn, cơ sở dữ liệu không gian [15].
2.6.1.3. Thuật toán CLARANS
CLARANS (Clustering Large Application Based on RANDOM Search) [19]. CLARANS phân cụm dựa trên việc tìm kiếm ngẫu nhiên các tập gồm k đối tượng để làm tâm của k cụm. Đối tượng dữ liệu nhân (medoid) là đối tượng dữ liệu thể hiện “tâm“ của đối tượng dữ liệu thuộc cụm đó. Tại mỗi bước tìm kiếm sẽ xác định được độ tốt của nó và giữ lại kết quả tìm kiếm tốt nhất.
Các tác giả đã thực hiện việc tìm kiếm và đánh giá độ tốt của phép tìm kiếm bằng cách xây dựng một đồ thị tìm kiếm. Đồ thị tìm kiếm có dạng như sau: với n đối tượng cần chia làm k cụm thì đồ thị được đặt tên là Gn,k. Mỗi đỉnh của Gn,k là một tập gồm k đối tượng {Om1,....,Omk}, ngụ ý rằng mỗi đối tượng Omi là tâm của một cụm. Tập đỉnh của đồ thị là {{O ,....,O }|O ,...,O CSDL} k 1 k 1 m m m m ∈ . Hai đỉnh của đồ
thị được gọi là kề nhau nếu chúng có khác nhau duy nhất một đối tượng. Nghĩa là S1 = {Om1,...,Omk} và S2 = {Ow1,...,Ow1} thì S1 và S2 được gọi là kề nhau nếu và chỉ nếu |S1∩ A2| = k - 1. Như vậy mỗi đỉnh có k(n-k) đỉnh kề. Theo cách định nghĩa đồ thị thì mỗi đỉnh là một phương án chọn k điểm tâm của k cụm, gán mỗi đỉnh của đồ thị với một trọng số là tổng khoảng của tất cả các đối tượng đến tâm tương ứng. Dùng trọng số này để đánh giá độ tốt của mỗi phương án.
Thuật toán yêu cầu hai tham số từ người sử dụng: Là numlocal (số cục bộ địa phương cần tìm) và maxneighbor (số đỉnh kề cần xét). Trong đó Maxneighbor là số đối tượng hàng lân cận của một nút trong đồ thị sẽ được kiểm tra và Numlocal là số lớn nhất của các điểm cực tiểu địa phương sẽ thu thập.
Quá trình thực hiện của thuật toán như sau:CLARANS khởi tạo bằng cách chọn một tập điểm nhân ngẫu nhiên. Kế tiếp thuật toán kiểm tra một trường hợp trong đối tượng lân cận của một tập đối tượng nhân vừa chọn. Nếu một tập điểm nhân lân cận đang được xét tốt hơn so với tập điểm nhân đang có dựa trên đánh giá về sự khác nhau giữa hai tập điểm thì thay tập điểm nhân cũ bởi tập điểm nhân đang xét. Quá trình trên được thực hiện cho đến khi điều kiện về Maxneighbor được thoả
phương. Kết quả đưa ra là tập cực tiểu địa phương tốt nhất trong tập các điểm các tập cực tiểu địa phương thu được.
Thuật toán CLARANS được mô tả như sau:
CLARANS (Numlocal, Maxneighbor, D) Buil (D, Gn,k);
mincost = ∞; BestNode = nil;
For i =1 to Numlocal do Begin Current = Get_random(Gn,k); j = 1; While (j <= maxneighbor) do Begin S = Get_random(Neighbor(Current)); if (cost(S) < cost (Current)) then Begin Current = S; j = 0; End; j = j+1; End;
If (cost (Current) < cost (BestNode) then BestNode = Current; End;
Giá trị Maxneighbor ảnh hưởng tới chất lượng của các cụm được tạo ra. Với giá trị Maxneighbor đủ lớn thì kết quả phân cụm có hiệu quả gần với PAM. Tham số Numlocal ảnh hưởng lớn tới thời gian chạy. Những thí nghiệm đánh giá nếu nhận thấy rằng chất lượng của cụm nhận được là tốt trong trường hợp Numlocal có giá trị bằng 2 và nếu với giá trị Numlocal lớn hơn thì thuật toán CLARANS cũng không
đưa ra được kết quả tốt hơn. Vì thế, thông thường thì Numlocal được đặt là 2 trong
các trường hợp sử dụng CLARANS.
Hạn chế của CLARANS là sự thiếu hiệu qủa. Vòng lặp bên trong của thuật toán cần thời gian O(N) khi duyệt qua toàn bộ cơ sở dữ liệu. Mặc dù, tác giả đã đưa ra thời gian chạy của CLARANS là xấp xỉ tuyến tính nhưng trong thực tế, thời gian cho mỗi bước tìm đã là O(KN)2 và tổng thời gian của toàn bộ quá trình chia cho thời gian này ít nhất là hàm mũ 2. Ngoài ra, có thể những bước tìm kiếm cực tiểu địa phương không tìm được cực tiểu địa phương thực sự mặc dù đã được duyệt với kỹ thuật lấy mẫu. CLARANS lưu trữ tất cả mọi điểm dữ liệu trong bộ nhớ vì thế CLARANS chỉ có thể áp dụng lên cơ sở dữ liệu nhỏ. Để khắc phục được điều này, một kỹ thuật lấy mẫu đã được áp dụng để cải tiến CLARANS có thế xử lý với dữ liệu lớn.
Nếu CLARANS không áp dụng kỹ thuật nào thì không thể xử lý được dữ liệu lớn. Mặc dù thuật toán cho kết quả hoàn toàn độc lập với thứ tự dữ liệu đầu vào nhưng CLARANS chỉ có thể tìm ra cụm với hình thù đơn giản mà không tìm ra cụm với hình thù bất kỳ. Hơn nữa CLARANS không làm việc được với dữ liệu nhiều chiều. Dựa trên phương pháp lấy mẫu thì thuật toán có thể không xử lý được với những trường hợp dữ liệu có chứa nhiễu. Thuật toán có thể sẽ xác định một điểm dữ liệu cực tiểu địa phương. Mặc dù không cần thiết phải xác định số cụm trước như những thuật toán phân hoạch khác nhưng thuật toán CLARANS lại yêu cầu hai tham biến là Numlocal và Maxneighbor từ người sử dụng.
2.6.2. Phương pháp phân cấp (Hierarchical Methods)
Phương pháp này xây dựng một phân cấp trên cơ sở các đối tượng dữ liệu đang xem xét. Nghĩa là sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình cây, cây phân cấp này được xây dựng theo kỹ thuật đệ quy. Kỹ thuật này có 2 cách tiếp cận đó là:
- Tiếp cận hội tụ, thường được gọi
là tiếp cận Bottom – Up
- Tiếp cận phân chia nhóm, thường
Hình 2.7: Các chiến lược phân cụm phân cấp
1) Tiếp cận bottom-up: bắt đầu với mỗi đối tượng thành lập một cụm riêng biệt. Sau đó tiến hành hợp hoặc nhóm các đối tượng theo một vài tiêu chí đó như khoảng cách giữa trung tâm của 2 nhóm. Thuật toán kết thúc khi tất cả các nhóm được hợp thành một nhóm (nút gốc của cây) hoặc thỏa mãn điều kiện dừng.
Từ cây mới tạo được, đưa ra các cụm bằng cách chọn tập các đối tượng tại các nút thoả mãn điều kiện dừng.