Chương 2 MỘT SỐ KỸ THUẬT PHÂN CỤM DỮ LIỆU KHÔNG GIAN
2.4. Phương pháp phân cụm dữ liệu ràng buộc
2.4.1. Thuật toán phân cụm dữ liệu không gian
Trong các thuật toán được trình bày ở các phần trên đều chỉ tập trung vào tính hiệu quả của phân cụm dữ liệu. Tuy nhiên, không thuật toán nào xem xét các ràng buộc có thể có trong quá trình phân cụm dữ liệu.
Trong dữ liệu không gian thì phân cụm ràng buộc có nhiều ứng dụng, đặc biệt trong các hệ thống thông tin địa lý vì dữ liệu của hệ thống này như ảnh,… có các ràng buộc vật lý (có các đối tượng cản trở như dòng sông, đường cao tốc, dãy núi,.... và có các đối tượng cắt ngang như cây cầu) và các ràng buộc này có thể làm thay đổi quá trình phân cụm trong hệ thống thông tin địa lý. Hơn nữa, các các ràng buộc cản trở (dòng sông, đường cao tốc,…) có chức năng biểu diễn cho việc “không kết nối” để không kết nối các đối tượng dữ liệu gần nhau, trong khi các ràng buộc cắt ngang (cây cầu) có chức năng biểu diễn cho việc “Kết nối” để kết nối các đối tượng dữ liệu với nhau. Do vậy, chúng ta cần có các thuật toán xem xét các đối tượng cản trở và các đối tượng cắt ngang (cây cầu) để tăng tính hiệu quả và độ chính xác của cụm. Hình 2.6 trình bày phân cụm các đối tượng dữ liệu liên các xét đến các ràng buộc vật lý. Loại bỏ các ràng buộc dẫn đến không chính xác trong việc giải thích của sự tương quan giữa các đối tượng dữ liệu. Hình 2.6(b) trình bày ba cụm. Hình 2.6(c) phân cụm chính xác, tạo ra bốn cụm, ba cụm có các ràng buộc cao tốc và sông, và một cụm được nhóm bởi ràng buộc cây cầu).
Hình 2.6: Phân cụm các đối tượng dữ liệu ràng buộc.
(a) các đối tượng dữ liệu và các ràng buộc; (b) các cụm loại bỏ các rang buộc; (c) các cụm với các ràng buộc
Trong phần này, tôi sẽ trình bày khái quát các thuật toán phân cụm dữ liệu không gian có các ràng buộc vật lý: CLARANS[3], COD-CLARANS [4] và DBCluC [5].
2.4.1.1. Giới thiệu thuật toán CLARANS
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. 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.
Ý 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 medoid này nếu việc thay thế 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 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 láng giềng được duyệt mà chỉ có Maxneighbor số láng giềng được duyệt.
2.4.1.2. Mô tả thuật toán CLARANS
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 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.
Thuật toán CLARANS cần có hai tham số đầu vào là numlocal (số cục địa phương cần tìm) và maxneighbor (số đỉnh kề cần xét). Quá trình thực hiện của thuật toán như sau: Đầu tiên chọn ngẫu nhiên một đỉnh làm đỉnh hiện thời, lấy ngẫu nhiên một đỉnh kề với đỉnh hiện thời, so sánh trọng số của đỉnh hiện thời và đỉnh vừa chọn, nếu đỉnh vừa chọn có trọng số nhỏ hơn thì đặt đỉnh đó làm đỉnh hiện thời, lặp lại quá trình đó maxneighbor lần, tìm được
một đỉnh có trọng số thấp nhất, trọng số này gọi là cực tiểu địa phương. So sánh cực tiểu địa phương với một số mincost, nếu nhỏ hơn thì gán mincost bằng cực tiểu địa phương đó và lưu lại đỉnh hiện thời vào bestnode. Lặp lại quá trình trên đủ numlocal lần. Kết quả được chứa trong bestnode.
Thuật toán CLARANS được mô tả cụ thể như sau: Bước 1: Đặt i = 1, mincost = + .
Bước 2: Chọn một đỉnh ngẫu nhiên của Gn,k gọi là đỉnh hiện thời current. Bước 3: Đặt j = 1.
Bước 4: Chọn ngẫu nhiên 1 đỉnh S kề với current. Tính trọng số của S. Bước 5: Nếu S có trọng số nhỏ hơn current thì đặt S là đỉnh hiện thời và trở lại bước 3.
Bước 6: Ngược lại, j = j + 1. Nếu j maxneighbor thì quay về bước 4. Bước 7: Ngược lại, khi j > maxneighbor thì so sánh trọng số của current với mincost, nếu nhỏ hơn mincost thì đặt mincost bằng trọng số của current và đặt bestnode = current.
Bước 8: i = i + 1, nếu i > numlocal thì đưa ra bestnode và dừng, ngược lại thì quay về bước 2.
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ụ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ộ.
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. Thuật toán CLARANS được đánh giá là hiệu quả trên CSDL lớn, vấn đề xác định tham số numlocal và maxneighbor không phức tạp. Có thể chọn các giá trị khác nhau sao cho phù hợp với CSDL cần nghiên cứu.
Tuy nhiên, CLARANS cũng bộc lộ một số hạn chế. Thứ nhất, CLARANS cần đưa cả CSDL vào bộ nhớ trong. Thứ hai thời gian thực thi có nhiều trường hợp rất xấu, trường hợp tốt nhất là O(kn2) và trường hợp xấu nhất là O(nk).
Trong các thuật toán được trình bày ở các phần trên đều chỉ tập trung vào tính hiệu quả của phân cụm dữ liệu. Tuy nhiên, không thuật toán nào xem xét các ràng buộc có thể có trong quá trình phân cụm dữ liệu.
Trong dữ liệu không gian thì phân cụm ràng buộc có nhiều ứng dụng, đặc biệt trong các hệ thống thông tin địa lý vì dữ liệu của hệ thống này như ảnh,… có các ràng buộc vật lý (có các đối tượng cản trở như dòng sông, đường cao tốc, dãy núi,.... và có các đối tượng cắt ngang như cây cầu) và các ràng buộc này có thể làm thay đổi quá trình phân cụm trong hệ thống thông tin địa lý.
Hơn nữa, các các ràng buộc cản trở (dòng sông, đường cao tốc,…) có chức năng biểu diễn cho việc “không kết nối” để không kết nối các đối tượng dữ liệu gần nhau, trong khi các ràng buộc cắt ngang (cây cầu) có chức năng biểu diễn cho việc “Kết nối” để kết nối các đối tượng dữ liệu với nhau. Do vậy, chúng ta cần có các thuật toán xem xét các đối tượng cản trở và các đối tượng cắt ngang (cây cầu) để tăng tính hiệu quả và độ chính xác của cụm.
Hình 2.7 trình bày phân cụm các đối tượng dữ liệu liên các xét đến các ràng buộc vật lý. Loại bỏ các ràng buộc dẫn đến không chính xác trong việc giải thích của sự tương quan giữa các đối tượng dữ liệu. Hình 2.7(b) trình bày ba cụm. Hình 2.7(c) phân cụm chính xác, tạo ra bốn cụm, ba cụm có các ràng buộc cao tốc và sông, và một cụm được nhóm bởi ràng buộc cây cầu).
Hình 2.7: Phân cụm các đối tượng dữ liệu ràng buộc
(a) các đối tượng dữ liệu và các ràng buộc; (b) các cụm loại bỏ các ràng buộc; (c) các cụm với các ràng buộc
Trong phần này, tôi sẽ trình bày khái quát hai thuật toán phân cụm dữ liệu không gian có các ràng buộc vật lý: COD-CLARANS [4] và trình bày chi tiết thuật toán DBCluC [3].
2.4.1.3. Thuật toán COD-CLARANS
COD-CLARANS được phát triển từ thuật toán CLARANS [4]. Đây là thuật toán được thay đổi của phương pháp k-medoids. COD-CLARANS xem xét các ràng buộc cản trở bằng cách tích hợp một lược đồ tối ưu vào trong hàm khoảng cách lỗi trong thuật toán CLARANS. Các ràng buộc cản trở được mô hình hóa bằng một đồ thị tầm nhìn (visibility graph) VG=(V, E) thỏa mãn mỗi đỉnh của ràng buộc cản trở có nút tương ứng trong V, và hai nút v1 và v2
trong V được kết nối bằng một cạnh trong E nếu và chỉ nếu chúng thể hiện là nhìn thấy nhau. Đồ thị tầm nhìn là quá trình tiền xử lý để tính toán khoảng cách cản trở giữa hai đối tượng dữ liệu trong một không gian mặt phẳng.
Khoảng cách cản trở là một khoảng cách khúc ngoặt giữa hai đối tượng dữ liệu khi xem xét đồ thị tầm nhìn. Mỗi khi đồ thị tầm nhìn được xây dựng,
Micro-clustering được áp dụng là quá trình tiền xử lý nhóm các đối tượng dữ liệu từ cùng một cụm để tối thiểu hóa số lượng các đối tượng dữ liệu được xét trong phân cụm COD-CLARANS và làm vừa tập dữ liệu trong bộ nhớ chính. Song song với việc sử dụng thuật toán phân cụm CLARANS, COD-
CLARANS sử dụng một hàm tỉa để giảm không gian tìm kiếm bằng cách tối thiểu hóa các lỗi khoảng cách khi lựa chọn cách miêu tả các cụm. Không may, COD-CLARANS kế thừa các bài toán từ CLARANS, một phương phâp phân cụm phân hoạch nên COD-CLARANS nhạy cảm với nhiễu và chấp nhận quá trình tiền xử lý trong không gian dữ liệu có ảnh hưởng lớn khi xét các ràng buộc cản trở.
2.4.1.4. Thuật toán DBCluC
Như đã đề cập ở các phần trên, phần này tôi sẽ tập trung nghiên cứu và trình bày chi tiết thuật toán DBCluC. Trước khi đi vào nội dung của thuật toán này, tôi đã trình bày các khái niệm liên quan đến thuật toán DBCluC ở phần chương 1.
2.4.1.5. Mô hình hóa các ràng buộc
Chúng ta đã định nghĩa bài toán phân cụm dữ liệu ràng buộc trong phần trên. Xét về tính hiệu quả của quá trình phân cụm thì yếu tố quan trọng đó là mô hình hóa các ràng buộc một cách hiệu quả hiệu quả thì sẽ hạn chế tác động lên các cụm của thuật toán DBCluC. Như đã đề cập trong các phần trước, chúng ta mô hình hóa các ràng buộc vật lý bằng các đa giác. Tuy nhiên, với số lượng các ràng buộc cản trở nhiều thì chúng ta sẽ có một số lượng lớn các cạnh để kiểm tra cho việc phân chia các không gian tầm nhìn Trong phần này, tôi sẽ trình bày một mô hình hóa các đa giác mà giảm tối thiểu số lượng các cạnh xem xét.
* Mô hình hóa ràng buộc cản trở
Nhiều lĩnh vực nghiên cứu như khai phá dữ liệu không gian, hình học tính toán, đồ họa máy tính,… đã xem xét các ràng buộc cản trở là các đa giác. Hiệu quả cả các thuật toán đã sử dụng đa giác để miêu tả các ràng buộc cản trở là phụ thuộc vào kích thước đầu vào, tức là số lượng các cạnh đa giác. Cụ thể đối với việc tìm một đường ngắn nhất giữa điểm bắt đầu và điểm kết thúc có các ràng buộc cản trở thì yêu cầu phải đánh giá các ràng buộc cản trở để tối thiểu hóa khoảng cách. Hiểu kết nối giữa các điểm dữ liệu cũng cần thiết để đánh giá các ràng buộc cản trở. [1] và [4] thảo luận bài toán phân cụm có các ràng buộc cản trở, nhưng [4] không trình bày rõ ràng cách để mô hình hóa các ràng buộc cản trở. Mặc dù [1] mô hình hóa các ràng buộc cản trỏ sử dụng một đồ thị tầm nhìn nhưng các tác giả không trình bày các loại ràng buộc cản trở cụ thể, tuy nhiên đồ thị tầm nhìn không đưa vào để đánh giá độ phức tạp hoặc thời gian thực hiện.
Trong [5] đưa mô hình hóa các ràng buộc cản trở bằng các đa giác, một đa giác được biểu diễn bằng tập nhỏ nhất các đoạn đường thẳng, được gọi là các đường cản trở, không thỏa mãn Định nghĩa 2.1 về ràng buộc cản trỏ. Tập các đường cản trỏ này nhỏ hơn số lượng các cạnh trong đa giác. Điều này dẫn đến giảm kích thước đầu vào. Các đường cản trở trong một đa giác phụ thuộc vào loại đa giác: đa giác lồi hoặc đa giác lõm. Chú ý rằng một ràng buộc cản trở tạo ra số lượng các không gian tầm nhìn cùng với số lượng các điểm lồi. Trước khi trình bày ý tưởng chuyển đổi một đa giác biểu diễn ràng buộc cản trở thành một đa giác có số lượng các đoạn đường thẳng nhỏ hơn (các đường cản trở), chúng ta cần kiểm tra đa giác đó là lồi hoặc lõm. Nếu một điểm bất kỳ của đa giác biểu diễn ràng buộc cản trở được phân loại thành lõm thì đa giác này được nói là đa giác lõm. Ngược lại nói là đa giác lồi. Kiểm tra tính lồi của đa giác là yếu tố cơ bản trong xác định các đường cản trở. Khi đó bài toán kiểm tra tính lồi hoặc lõm thành xác định các điểm đa giác là lồi hoặc lõm. Quá trình kiểm tra kiểm tra điểm lồi để xác định các đường cản trở (biểu diễn đa giác nhỏ hơn của đa giác miêu tả các ràng buộc cản trở) được đưa ra chi tiết trong [4]. Với phạm vi của báo cáo nên trong phần này tôi chỉ trình bày ý tưởng cơ bản.
* Giảm đa giác biểu diễn ràng buộc cản trở
Để tạo ra các đường cản trở cho đa giác miêu tả ràng buộc cản trở, đầu tiên chúng ta cần xác định loại của đa giác, đa giác lồi hoặc đa giác lõm vì số lượng các đường cản trở phụ thuộc vào loại của của đa giác miêu tả ràng buộc cản trở. Kiểm tra điểm lồi cho một điểm của đa giác miêu tả ràng buộc cản trở dựa trên việc kiểm tra có hay không một đoạn đường kéo dài mà cắt các cạnh còn lại của đa giác miêu tả ràng buộc cản trở. Mỗi khi chúng ta xác định được loại đa giác là lỗi hoặc lõm, chúng ta tìm các đường cản trở để thay thế các đoạn thẳng ban đầu của đa giác miêu tả ràng buộc cản trở bằng cách đảm bảo các không gian tầm nhìn không bị phân chia hoặc bị chộn. Rõ ràng với một đa
giac lồi có số điểm của không gian tầm nhìn (Định nghĩa 2) bằng số lượng các điểm lồi của đa giác miêu tả ràng buộc cản trở do mỗi đoạn đường thẳng từ các khối điểm lồi nhìn các không gian tầm nhìn láng giềng của nó. Ngược lại, một điểm lõm không tạo ra hai không gian tầm nhìn. Nó thực hiện có một không gian tầm nhìn. Một điểm lồi tạo ra hai không gian tầm nhìn liền kề nhau.
Chúng ta quan sát thực tế rằng với hai đoạn liền kề nhau dùng một điểm lồi trong một đa giác miêu tả ràng buộc cản trở, một trong chúng là đủ để cản trở tầm nhìn giữa hai không gian tầm nhìn láng giềng mà được tạo ra bởi điểm lồi. Do vậy đủ để tìm một tập các đường cản trở mà cản trở các không gian tầm nhìn liền kề nhau của mỗi điểm lồi từ một đa giác miêu tả ràng buộc cản trở, trong khi các đường cản trở là ở trong và không tương tác với đa giác miêu tả ràng buộc cản trở. Bây giờ, rõ ràng rằng chúng ta có thể giảm số lượng các đoạn đường thẳng ban đầu từ một đa giác lồi miêu tả ràng buộc cản trở tới [N/2] đoạn, ở đây N là số lượng các điểm trong đa giác lồi.
Tuy nhiên, đối với đa giác lõm không như vậy. Yêu cầu trong một đa giác lõm cần kiểm tra nếu một đường cản trở được tương tác với một đoạn đường thẳng từ đa giác lõm và ngoài đa giác lõm. Nếu một đường cản trở có thể được tương tác với đoạn từ hoặc ngoài tới một đa giác lõm miêu tả ràng buộc cản trở, khi đó đa giác này được thay thế với tập các đường cản trở mà có thể là các đoạn