Thuật toán CLARANS

Một phần của tài liệu Phân cụm dữ liệu và ứng dụng trong công tác tái bảo hiểm (Trang 41)

Thuật toán CLARANS đƣợc Ng & Han đề xuất năm 1994 [11][20], nhằm để cải tiến cho chất lƣợng cũng nhƣ mở rộng áp dụng cho tập dữ liệu lớn. CLARANS cũng sử dụng các đối tƣợng trung tâm medoids làm đại diện cho các cụm dữ liệu.

Nhƣ đã biết, PAM là thuật toán phân hoạch có kiểu k-medoids. Nó bắt đầu khởi tạo k tâm đại diện medoid và liên tục thay thế mỗi tâm bởi một đối tƣợng khác trong cụm cho đến khi là tổng khoảng cách của các đối tƣợng đến tâm cụm không giảm. CLARANS là thuật toán PCDL kết hợp thuật toán PAM với chiến lƣợc tìm kiểm kinh nghiệm mới. Ý tƣởng cơ bản của CLARANS là không xem xét tất cả các khả năng có thể thay thể các đối tƣợng tâm medoids bởi một đối tƣợng khác, nó ngay lập tức thay thế các đối tƣợng tâm này nếu việc thay thế này có tác động tốt đến chất lƣợng phân cụm chứ không cấn xác định cách thay thể tối ƣu nhất. Một phân hoạch cụm phát hiện đƣợc sau khi thay thế đối tƣợng trung tâm đƣợc gọi là một láng giềng (neighbor) của phân hoạch cụm trƣớc đó. Số các láng giềng đƣợc hạn chế bởi tham số do ngƣời dùng đƣa vào là Maxneighbor, quá trình lựa chọn các láng giềng này là hoàn toàn ngẫu nhiên. Tham số Numlocal cho phép ngƣời dùng xác định số vòng lặp tối ƣu cục bộ đƣợc tìm kiếm. Không phải tất các các láng giềng đƣợc duyệt mà chỉ có Maxneighbor số láng giềng đƣợc duyệt.

Một số khái niệm sử dụng trong thuật toán CLARANS được định nghĩa như sau:

Giả sử O là một tập có n đối tƣợng và M là tập các đối tƣợng tâm medoid, NM - M là tập các đối tƣợng không phải tâm. Các đối tƣợng dữ liệu sử dụng trong thụât toán

CLARANS là các khối đa diện. Mối đối tƣợng đƣợc diễn tả bằng một tập các cạch, mỗi cạnh đƣợc xác định bằng 2 điểm. Giả sử P R3 là một tập tất cả các điểm. Nói chung, các đối tƣợng ở đây là các đối tƣợng dữ liệu không gian và chúng ta định nghĩa tâm của một đối tƣợng chính là trung bình cộng toán học của tất cả các đỉnh hay còn gọi là trọng tâm: Center: O P

Giả sử dist là một hàm khoảng cách, khoảng cách thƣờng đƣợc chọn ở đây là khoảng cách Euclidean: dist: P x PR0+

Hàm khoảng cách dist có thể mở rộng cho các điểm của khối đa diện thông qua hàm tâm: dist: O x OR0+ sao cho dist (oi, oj) = dist (center(oi), center(oj))

Mỗi đối tƣợng đƣợc đƣợc gán cho một tâm medoid của cụm nếu khoảng cách từ trọng tâm của đối tƣợng đó tới tâm medoid của nó là nhỏ nhất. Vì vậy, chúng ta định nghĩa một tâm medoid nhƣ sau: medoid: OM sao cho medoid (o) = mi, mi M, mj M: dist (o, mi)

dist (o, mj), o O.

Cuối cùng, chúng ta định nghĩa một cụm với tâm medoid mi tƣơng ứng là một tập con các đối tƣợng trong O với medoid(o) = mi.

Giả sử C0 là tập tất cả các phân hoạch của O. Hàm tổng đế đánh giá chất lƣợng một phân hoạch đƣợc định nghĩa nhƣ sau: total_distance: C0R0+ sao cho total_distance(c) =

Thuật toán chi tiết CLARANS nhƣ biểu diễn trong hình 13 sau [11][20]:

Input: O, k, dist, numlocal, and maxneighbor;

Output: k cụm dữ liệu;

CLARANS (int k, function dist, int numlocal, int maxneighbor) BEGIN

for (i = 1; i <= numlocal; i++) { current.create_randomly(k); j = 1;

while (j < maxneighbor) {

current.select_randomly(old, new);

diff = current.calculate_distance_difference(old, new);

if (diff < 0) { current.exchange(old, new); j = 1; } else j++; // end if } // end while dist = current.calculate_total_distance(); if (dist < smallest_dist) { best = current; smallest_dist = dist; } // end if } // end for END;

Trong đó:

Create_Randomly(k): tạo ngẫu nhiên k cụm dữ liệu, nghĩa là thuật toán lựa chọn ngẫu nhiên k đối tƣợng medoid từ n đối tƣợng dữ liệu.

Select_randomly(old, new): thay thế một đối tƣợng tâm cụm medoid old bởi đối tƣợng khác new.

Calculate_distance_difference(old, new): tính toán sự khác nhau về tổng khoảng cách giữa phân hoạch hiện thời và láng giềng của nó.

Exchange(old, new): hoán đối giữa đối tƣợng tâm cụm medoid old với đối tƣợng không phải là medoid new, sau khi hoán đổi vai trò của chúng cũng đƣợc hoán đổi.

Calculate_total_distance(): tính tổng khoảng cách cho mỗi phân hoạch.

Nhƣ vậy, quá trình hoạt động của CLARANS tƣơng tự với quá trình hoạt động của thuật toán CLARA. Tuy nhiên, ở giai đoạn lựa chọn các trung tâm medoid

của cụm dữ liệu, CLARANS lựa chọn một giải pháp tốt hơn bằng cách lấy ngẫu nhiên một đối tƣợng của k đối tƣợng trung tâm medoid của cụm và cố gắng thay thế nó với một đối tƣợng đƣợc chọn ngẫu nhiên trong (n-k) đối tƣợng còn lại, nếu không có giải pháp nào tốt hơn sau một số cố gắng lựa chọn ngẫu nhiên xác định, thuật toán dừng và cho kết quả phân cụm tối ƣu cục bộ.

Trong trƣờng hợp tệ nhất, CLARANS so sánh một đối tƣợng với tất các đối tƣợng Medoid. Vì vậy, độ phức tạp tính toán của CLARANS là O(kn2

), do vậy CLARANS không thích hợp với tập dữ liệu lớn (khi trƣờng hợp xấu nhất xẩy ra). CLARANS có ƣu điểm là không gian tìm kiếm không bị giới hạn nhƣ đối với CLARA, và trong cùng một lƣợng thời gian thì chất lƣợng của các cụm phân đƣợc là lớn hơn so với CLARA.

Một phần của tài liệu Phân cụm dữ liệu và ứng dụng trong công tác tái bảo hiểm (Trang 41)