2.5. Kết luận
Trong chương này, đầu tiên tôi trình bày những kiến thức cơ bản liên quan đến Phân cụm dữ liệu. Sau đó, tôi trình bày các kỹ thuật tiếp cận trong Phân cụm dữ liệu và trong mỗi kỹ thuật tôi trình bày một thuật toán đại diện. Đặc biệt, tôi trình bày thuật toán phân cụm dữ liệu ràng buộc và đi sâu vào thuật toán DBCluC. Như vậy, chúng ta thấy trong phân cụm dữ liệu không gian khi phân cụm không xét đến các ràng buộc thì kết quả sẽ không được chính xác. Để giải quyết vấn đề này, trong chương tôi trình bày hai thuật toán (Thuật toán COD-CLARANS, Thuật toán DBCluC và đi sâu vào thuật toán DBCluC. Để có thể biết được hiệu quả của thuật toán phân cụm ràng buộc này, trong chương tới tôi sẽ tiến hành xây dựng thử nghiệm. Từ đó đưa ra kết quả và đánh giá.
Chương 3
CÀI ĐẶT VÀ THỬ NGHIỆM 3.1. Phân tích bài toán
Chương 1 đã phát biểu sơ bộ mục đích, ý nghĩa của bài toán tìm vị trí tối ưu đặt điểm tâ ̣p kết Nhà hàng trong nội thành Hà Nội. Yêu cầu của bài toán là: tìm ra các vị trí nằm càng gần các khu vực tập trung đông người như cơ quan, công ty, khách sạn, siêu thị, bê ̣nh viê ̣n…càng tốt. Trong khuôn khổ của luận văn, cơ sở để giải quyết bài toán này là dựa trên việc khai phá dữ liệu không gian, cụ thể là thực hiện phân cụm các điểm tiện ích để tìm ra phân bố không gian của chúng một cách tự động, từ đó hỗ trợ việc ra quyết định lựa chọn các vị trí gần nhất tới các cụm điểm tiện ích.
Phần này làm rõ bài toán cũng như tính khả thi của nó thông qua việc xem xét các yếu tố quyết định đến kết quả của bài toán, các yếu tố này bao gồm:
- Dữ liệu đầu vào. - Phạm vi bài toán.
- Phương pháp kỹ thuật sử dụng để giải quyết bài toán.
3.1.1. Nguồn dữ liệu đầu vào và phạm vi bài toán
Dữ liệu bản đồ số các tỉnh thành của Việt Nam nhìn chung còn hạn chế về số lượng, chất lượng và thường không đồng bộ về tỷ lệ bản đồ, nội dung hiển thị. Đa phần bản đồ số chỉ bao gồm các lớp về ranh giới hành chính, địa hình. Các thông tin về các điểm tiện ích như khu du lịch, khách sạn, nhà hàng, siêu thị, đền chùa, khu vui chơi giải trí, vân vân, đều rất hạn chế. Đặc điểm của bài toán khai phá dữ liệu nói chung và phân cụm dữ liệu nói riêng là tính hiệu quả phụ thuộc nhiều vào khối lượng dữ liệu đầu vào.
Trong số các nguồn dữ liệu bản đồ số mà học viên tiếp cận được, dữ liệu bản đồ thành phố Hà Nội là phong phú nhất, trong đó bao gồm 21 lớp thông tin bản đồ, được chia thành 9 nhóm thông tin như: nhóm lớp thông tin bản đồ nền, nhóm Văn hóa, giáo dục, Y tế, Kinh doanh và dịch vụ, Du lịch, hành chính…
Trong các lớp thông tin trên, lượng thông tin chủ yếu tập trung ở khu vực nội thành và các lớp thông tin có ý nghĩa đối với yêu cầu đặt ra của bài toán chủ yếu là các lớp thông tin dạng điểm tiện ích như:
- Khách sạn, nhà khách - Siêu thị
- Ngân hàng
- Nhà hàng, quán bia, cà phê
Như vậy, dữ liệu đầu vào sử dụng được cho bài toán chủ yếu là các lớp thông tin dạng điểm, phạm vi chủ yếu trong nội thành Hà Nội.
3.1.2. Phương pháp kỹ thuật giải quyết bài toán
Để giải quyết bài toán, cần thực hiện phân cụm các lớp dữ liệu điểm tiện ích, có hai cách tiếp cận:
- Sử dụng phân cụm đa chiều.
- Phân cụm đơn chiều trên các lớp dữ liệu và thực hiện tổng hợp các kết quả phân cụm.
Học viên lựa chọn tiếp cận thứ hai với lý do mong muốn áp dụng một bài toán quan trọng của hệ thông tin địa lý là bài toán chồng phủ bản đồ. Theo cách tiếp cận này, từng lớp dữ liệu điểm tiện ích sau khi phân cụm sẽ thực hiện xây dựng đường bao của các cụm, tạo thành một lớp bản đồ dạng vùng bao phủ của các cụm. Tiến hành chồng phủ các lớp bản đồ dạng vùng này sẽ thu được vùng giao cắt là vùng thỏa mãn tiêu chí: khoảng cách địa lý tới các cụm điểm tiện ích là nhỏ nhất, là vị trí có thể coi là tối ưu để đặt các điểm tiện ích Nhà hàng.
Lựa chọn phương pháp phân cụm
Với đặc điểm của dữ liệu đầu vào như đã đề cập ở trên, chúng ta lựa chọn phương pháp phân cụm theo mật độ bởi:
Thứ nhất: đối tượng phân cụm chủ yếu là các điểm tiện ích, tức là các đối tượng dạng điểm. Kiểu đối tượng này khá phù hợp với phương pháp phân cụm theo mật độ.
Thứ hai: không cần thiết phải biết trước số cụm điểm tiện ích phân hoạch được, do đó không sử dụng tiếp cận phân hoạch.
Thứ ba: Không cần lưu trữ thông tin các mức trung gian trong quá trình phân cụm, do đó không sử dụng tiếp cận theo lưới.
Lựa chọn độ đo sử dụng trong phân cụm
Chúng ta quan tâm đến tính liên tục về mặt không gian của các điểm tiện ích trong cụm và khoảng cách giữa các điểm này chứ không quan tâm đến hướng của chúng. Hơn nữa với các đối tượng dạng điểm, quan hệ về topology mang ít ý nghĩa ngoại trừ các đối tượng này mang thông tin về mạng lưới liên thông như: mạng lưới cột điện, mạng lưới cấp nước…Do vậy ta sử dụng độ đo khoảng cách trong bài toán phân cụm đã đề ra.
3.2. Xây dựng chương trình ứng dụng
3.2.1. Phân tích thiết kế hệ thống
Hệ thống phải đảm bảo cung cấp các chức năng tối thiểu của một hệ thông tin địa lý như:
- Duyệt bản đồ - Phóng to - Thu nhỏ - Trượt bản đồ
- Xem thông tin bản đồ
Ngoài ra, phục vụ yêu cầu của bài toán đã đề ra, hệ thống cần có thêm các chức năng:
- Phân cụm dữ liệu - Chồng phủ bản đồ - Lưu kết quả chồng phủ
Trên cơ sở phân tích các chức năng của hệ thống như trên, chúng ta xây dựng được biểu đồ Use case thể hiện các chức năng chính của hệ thống như sau:
Biểu đồ ca sử dụng
Them lop ban do
Phan cum
Chong phu ban do
Phong to ban do
Thu nho ban do Duyet ban do
Truot ban do Luu ban do
Nguoi su dung Dong lop ban do
3.2.2. Cài đặt chương trình
Chương trình thử nghiệm được cài đặt bằng ngôn ngữ C#, trong đó có sử dụng thư viện mã nguồn mở SharpMap do tác giả Morten Nielsen (www.iter.dk) và cộng đồng mã nguồn mở phát triển để hỗ trợ hiển thị bản đồ.
Một số chức năng chính đã được cài đặt trong chương trình: - Duyệt bản đồ: hiển thị bản đồ, phóng to, thu nhỏ, trượt bản đồ - Phân cụm dữ liệu bản đồ
- Chồng phủ bản đồ - Lưu bản đồ
Học viên đã tiến hành cài đặt thử nghiệm 2 thuật toán phân cụm dựa trên mật độ là thuật toán DBSCAN và DBRS, DBCLUC ngoài ra cũng cài đặt thêm thuật toán phân cụm dựa trên phân hoạch K-means để so sánh và đánh giá.
Một số hình ảnh của chương trình
Hình 3.1: Phân cụm lớp dữ liê ̣u "Khách sạn-Trường học trong nội thành Hà Nội, các vùng màu vàng là các cụm tìm được.
Hình 3.2: Hình ảnh chồng phủ (vùng màu vàng) của các cụm “Siêu thị” (màu xanh) và cá c cụm “Khách sạn- Trường học” (màu đỏ). Vùng màu
Hình 3.3: Kết quả phân cụm DBSCAN đối với dữ liệu thử nghiệm tự tạo
3.3. Thử nghiệm và đánh giá các thuật toán phân cụm
Học viên tiến hành thử nghiệm, so sánh và đánh giá 3 thuật toán đã cài đặt trên hệ thống như sau:
Đánh giá tổng quan 3 thuật toán
Bảng 3.1: So sánh tổng quan các thuật toán K-means, DBSCAN và DBRS
K-means DBSCAN DBRS
Độ phức tạp O(tKN) O(NlogN) O(NlogN)
Khả năng phát hiện nhiễu kém Tốt Tốt
Khả năng phát hiện cụm có
hình dạng bất kỳ không có có
Khả năng phân cụm theo
thuộc tính phi không gian không không có
Kết quả phân cụm Khác nhau ở
mỗi lần chạy Giống nhau
Khá giống nhau
Hình 3.4: Khả năng phát hiện nhiễu và cụm có hình dạng bất kỳ của K- means (trái) và DBSCAN (phải), đường bao màu xanh là đường biên cụm
Hình 3.5: Khả năng phân cụm theo thuộc tính của DBSCAN (trái) và DBRS (phải)
Đánh giá độ phức tạp thuật toán
Thử nghiệm thứ nhất: Thực hiện phân cụm với cùng một tập dữ liệu
đầu vào: tệp Cosohatang_KTXH bao gồm 4235 mẫu dữ liệu, thực hiện trên máy tính với CPU 1.6GHz Celeron Mobile đơn lõi, 2GB Ram. Kết quả thu được như sau:
Bảng 3.2: Kết quả so sánh thời gian thực hiện phân cụm của các thuật toán K-means, DBSCAN và DBRS với cùng một tập dữ liệu đầu vào Bảng so sánh thời gian thực hiện phân cụm với cùng một tập dữ liệu đầu vào
(với cùng một tập dữ liệu đầu vào: tệp Cosohatang_KTXH với 4235 mẫu dữ liệu thực hiện trên máy tính với CPU 1.6GHz Celeron Mobile đơn lõi, RAM 2GB)
Thuật toán
Thời gian (ms) Các tham số phân cụm lần 1 lần 2 lần 3 lần 4 lần 5 lần 6 lần 7 lần 8 lần 9 lần 10 K-means 382 412 356 449 611 266 577 192 311 621 số cụm = 6 DBSCAN 1340 1347 1389 1445 1347 1323 1382 1331 1340 1395 epsilon = 1301.1470, MinPts=4 DBRS 815 727 831 957 909 935 917 856 723 946 epsilon = 1301.1470,, MinPts=4 minPur =0.8, random samplin, alpha max =0.01, thuộc tính phân cụm: "tenGoi"
Kết quả thể hiện dưới dạng đồ thị như sau:
Hình 3.5: Đồ thị so thời gian thực hiện phân cụm của các thuật toán K-measn, DBSCAN và DBRS với cùng một tập dữ liệu đầu vào.
Kết quả cho thấy: với cùng số lượng dữ liệu đầu vào, thời gian thực hiện trung bình của thuật toán K-means thấp nhất, DBSCAN thực hiện lâu nhất. Đồ thị cũng cho thấy sự biến thiên thời gian thực hiện của K-means với mỗi bộ tâm cụm ngẫu nhiên ở mỗi lần chạy.
Thử nghiệm thứ 2: Sử dụng các tập dữ liệu đầu vào khác nhau, với số
lượng dữ liệu tăng dần, kết quả thu được như bảng sau:
Bảng 3.3: Kết quả so sánh thời gian thực hiện phân cụm của các thuật toán K-means, DBSCAN và DBRS trên các tập dữ liệu khác nhau Bảng so sánh thời gian thực hiện phân cụm với số lượng mẫu dữ liệu khác nhau
(với các tập dữ liệu đầu vào khác nhau,
thực hiện trên máy tính với CPU 1.6GHz Celeron Mobile đơn lõi, RAM 2GB)
Số mẫu dữ liệu Thời gian (ms) Các tham số phân cụm 64 mẫu 130 mẫu 270 mẫu 514 mẫu 1153 mẫu 2155 mẫu 4235 mẫu K-means 2 5 12 19 65 127 238 số cụm = 6 DBSCAN 8 14 19 35 117 717 1298 MinPts=4 DBRS 6 7 6 25 93 244 816 MinPts=4, minPur =0.8, random sampling, alpha max =0.01
Kết quả cho thấy, độ phức tạp thuật toán O(tKn), độ phức tạp thuật toán O(NlogN). Đồ thị cũng cho thấy thuật toán DBCLUC có thời gian thực hiện thấp hơn DBSCAN do chỉ duyệt một số hữu hạn điểm ngẫu nhiên trong cơ sở dữ liệu.
. Độ phức tạp của thuật toán DBCluC
Như đã trình bày ở trên, thuật toán giảm đa giác mô hình hóa các cản trở và các cắt ngang được phân thành các đa giác cản trở lồi hoặc lõm. Cho
n số lượng các điểm của đa giác p, và ncc và ncv tương ứng là số lượng các điểm đa giác lồi và số lượng các điểm đa giác lõm với n ncc ncv . Kiểm tra tính chất lồi cho đa giác p yêu cầu (n * ncc * ncv ) trong trường hợp xấu nhất, nhỏ hơn (n2) . Do vậy, tôi đánh giá với tập các đa giác, độ phức tạp của giảm đa giác xấp xỉ (n2), ở đây n là số lượng các điểm của đa giác lớn nhất (tính về cạnh). Giảm đa giác là một giai đoạn tiền xử lý trước khi phân cụm. Độ phức tạp đối với thuật toán phân cụm xấp xỉ (N * log N * L), ở đây L là số lượng các đường cản trở được tạo ra bởi thuật toán giảm đa giác, và N là số lượng các điểm trong cơ sở dữ liệu. Tuy nhiên, độ phức tạp có thể được giảm tới (N * log N ), nếu chúng ta làm theo phương pháp chỉ mục cho các cản trở.
Tính hiệu quả
Để có thể so sánh, tôi phải sử dụng các tập dữ liệu đúng đắn với cùng các ràng buộc. Tuy nhiên, chúng ta không truy cập tới các tập dữ liệu. Xét về tính hiệu quả, chúng ta chưa biết phân cụm dựa trên mật độ làm tốt hơn các thuật toán phân cụm sử dụng kỹ thuật phân hoạch như COD-CLARANS. Tôi đã đánh giá DBCluC bằng cách tạo ra các tập dữ liệu với các hình dạng cụm phức tạp và biến đổi kích thước dữ liệu cũng như số lượng và tính phức tạp của các ràng buộc vật lý. Đối với mục đích thử nghiệm, tôi đã tạo ra các tập dữ liệu tổ hợp.Trong báo cáo này, tôi báo cáo ba thử nghiệm DS1, DS2, và DS3. Các cây cầu và các cản trở (các dòng sông, các hồ, và đường cao tốc)
cũng được đưa vào trong các tập dữ liệu trên. DS1 chứa 434 điểm dữ liệu với bốn cản trở. Hình 3.6 trình bày 16 đoạn đường thẳng đa giác đã giảm tới 8 đường. Do vậy DS1 là thưa thớt vì vậy được nhóm thành một cụm. Thêm các cản trở tạo ra bốn cụm khác nhau (Hình 3.6(c)).
Hình 3.6: Phân cụm tập dữ liệu DS1
Hình 3.7 minh họa tính hiệu quả của DBCluC khi xuất hiện các cản trở và các cắt ngang. Với việc so sánh các kết quả phân cụm, Hình 3.7 minh họa các điểm dữ liệu, các cản trở, và các cắt ngang liên tục trước khi phân cụm (a); các kết quả phân cụm khi không xét các ràng buộc (b); các cụm khi xét các cắt ngang (c); các cụm khi xét các cản trở (d); và các kết quả phân cụm khi xét các loại ràng buộc: các cản trở và các cắt ngang. Các đường đỏ từ các cản trở trong tất cả các tập dữ liệu là các đường cản trở để thay thết các đa giác ban đầu mà được vẽ lại màu blue. Các cắt ngang từ DS2 và DS3 được vẽ lại bằng các đường red và black tương ứng là các cạnh entry và non-entry.
DS2 có khoảng 1063 điểm dữ liệu, 4 đối tượng cản trở và hai đối tượng cắt ngang. Có 6 cụm nếu không xét các ràng buộc (cản trở và cắt ngang), trình bày trong Hình 3.6(b). DS2 trình bày trực giác bài toán mà tôi nghiên cứu trong báo cáo này. Phân cụm chính xác là 8 cụm. Mặc dù một cụm là đủ nhỏ để truy cập một cắt ngang từ (c) trong Hình 3.7. DS3 có 11775 điểm dữ liệu với 6 cản trở (gồm có 29 đoạn đường thẳng) và 2 cây cầu. Hai 29 đoạn đường thẳng ban đầu mô tổ các cản trở được thay thế với 15 đường cản trở.
Hình 3.7: Phân cụm DS2
Tôi cũng xây dựng các thử nghiệm thay đổi kích thước của các tập dữ liệu và số lượng các cản trở để mô phỏng tính co giãn của DBCluC. Hình 3.7(a) trình bày thời gian thực hiện trong hai giây đối với tám tập dữ liệu có kích thước thay đổi từ 25K đến 200K với sự tăng 25K điểm dữ liệu. Hình 3.7 trình bày một sự co giãn tốt. Thời gian thực hiện phần lớn là tuyến tính theo số lượng các đối tượng dữ liệu. Hình 3.7(b) trình bày thời gian thực hiện trong hai giấy cho việc phân cụm 40K đối tượng dữ liệu nhưng bằng cách thay đổi số lượng các cản trở. Số lượng theo trục X miêu tả số lượng tổng các cạnh đa giác và các đường cản trở tương ứng. Chú ý rằng, thuật toán giảm đa giác ở trên đã thành công trong việc giảm số lượng các đường xấp xỉ một nửa thời gian. Sự chênh lệch trong việc tăng các cạnh đa giác không là hằng số. Tuy nhiên, trong phần tăng của các đa giác, thời gian thực hiện tuyến tính. Do vậy, DBCluC là co giãn với các cơ sở dữ liệu lớn với sự kết hợp các cản trở