Thuật toán phân cụm phân cấp

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp nâng cao tốc độ hiển thị dữ liệu trên bản đồ trực tuyến 04 (Trang 41)

Giả sử, có 6 dữ liệu điểm mẫu được sử dụng để gộp trong thuật toán phân cụm phân cấp, các điểm này là a, b, c, d, e và f. Khi chưa gộp, khoảng cách giữa các điểm được thể hiện như hình trên. Nếu người sử dụng chạy thuật toán phân cấp phân cụm từ tập dữ liệu này, đầu tiên 6 cụm riêng lẻ được tạo ra , trong đó mỗi điểm được coi là 1 cụm. Ở bước 2, các cụm gần nhau sẽ được gộp lại, trong trường hợp này, b và c, d và e được gộp lại với nhau thành 2 cụm mới “bc” và “de”. Bước tiếp theo, f sẽ được gộp với “de” vì chúng rất gần nhau và cụm mới, mang tên “def” được hình thành. Sau đó, vì “bc” và “def” ở gần nhau, nên chúng lại được gộp thành “bcdef”. Cuối cùng, a được gộp lại cụm mới này thành cụm “abcdef”. Từ đó có thể thấy thuật toán phân cấp phân cụm được chạy đến khi toàn bộ dữ liệu được gộp lại thành 1 cụm.

Hình 2.9. Quá trình chạy thuật toán phân cụm phân cấp. Thuật toán phân cụm phân cấp có các thuộc tính sau:

1. Các cụm được tạo ra ở các bước đầu được lồng vào cụm ở các bước sau.

2. Trên sơ đồ hình cây, các cụm với các kích thước khác nhau có thể rất có giá trị đối với việc khai thác thông tin sau này.

Cấu trúc hình cây thể hiện một các trực quan về sự phân cấp cho đến cụm cuối cùng, khi mà mỗi bước gộp được biểu diễn bởi 2 nhánh cây. Nhìn chung, quy trình của thuật toán phân cụm phân cấp là:

1. Gán mỗi đối tượng vào một cụm riêng biệt.

2. Đánh giá khoảng cách giữa từng đôi cụm (ma trận khoảng cách sẽ được trình bày trong phần phương pháp luận)

3. Xây dựng ma trận khoảng cách dựa trên các giá trị khoảng cách. 4. Tìm kiếm các cặp cụm có khoảng cách ngắn nhất.

5. Xóa cặp cụm này ra khỏi ma trận và tiến hành gộp.

6. Đánh giá lại toàn bộ khoảng cách cho hệ thống cụm mới, sau đó cập nhật lại ma trận

Hình 2.10. Quy trình thuật toán phân cấp phân cụm

Ưu điểm của thuật toán này là nó có thể tạo ra trật tự của các đối tượng, điều này rất thuận tiện cho quá trình hiển thị dữ liệu. Các cụm nhỏ hơn được sinh ra có thể rất hữu ích cho việc khai thác thông tin sau này. Tuy nhiên, thuật toán này cũng có một vài nhược điểm. Đó là không có 1 quy định nào cho việc dịch chuyển các đối tượng mà các bước đầu có thể bị gộp nhầm. Và việc sử dụng các ma trận khoảng cách khác nhau để xác định khoảng cách giữa các cụm cũng có thể dẫn đến các kết quả khác nhau.

2.4.2. Cấu trúc của thuật toán phân cấp

Thuật toán phân cấp có cấu trúc khá rõ ràng, các bước của thuật toán này là: - Bắt đầu với mỗi điểm trong một cụm chứa nó.

- Cho đến khi chỉ còn lại 1 cụm duy nhât: + Tìm các cặp cụm gần nhau nhất

a. Tính toán khoảng cách giữa các cụm.

Từ tọa độ của các điểm trong tập dữ liệu, khoảng cách giữa các điểm được tính toán và liệt kê thành bảng. Sau đó tính toán khoảng cách giữa các cặp đối tượng trong ma trận X cỡ m x n. Hàng của ma trận X tương ứng với các điểm, cột tương ứng với các thuộc tính. Kết quả là một hàng các véc tơ có độ dài m (m -1) / 2, tương ứng với số cặp trị đo trong ma trận X. Các khoảng cách được sắp xếp theo thứ tự (2,1), (3,1), ... , (m, 1), (3,2), ..., (m, 2), ..., (m, m -1)). Véc tơ này thường được sử dụng như một ma trận khác khi phân cụm.

b. Tạo liên kết và vẽ sơ đồ cây phân cấp.

Từ các khoảng cách euclide đã tính toán và xác định số lượng cụm mong muốn. Sau khi khoảng cách giữa các điểm được tính toán, cần xác định xem các đối tượng trong tập dữ liệu nên nhóm vào cụm như thế nào và liên kết các cặp đối tượng gần nhau thành các cụm gồm hai thành phần. Sau đó liên kết những cụm mới tạo này với nhau và với các đối tượng khác để tạo thành cụm lớn hơn đến khi tất cả các đối tượng trong tập dữ liệu ban đầu được liên kết với nhau trong sơ đồ hình cây. Dưới đây là minh họa của một sơ đồ hình cây.

Hình 2.11. Sơ đồ hình cây

Sơ đồ hình cây bao gồm các đường nối chữ U dùng để liên kết các đối tượng lại với nhau. Độ cao của mỗi nhánh chữ u này thể hiện khoảng cách giữa hai đối tượng liên kết với nhau. Nhánh nhỏ nhất của sơ đồ chính là một điểm dữ liệu. Từ sơ đồ hình cây có thể thấy, các dữ liệu điểm gần nhau nhất được gộp lại thành cụm, sau đó các cụm gần nhau lại được gộp lại đến khi đạt được số lượng cụm mong muốn. Về cơ bản, nó dựa trên nguyên tắc phân cụm phân cấp. Do sơ đồ hình cây rất trực quan, nên chất lượng của việc phân cụm có thể nhìn nhận trước được, và dựa vào đó có thể thay đổi các tham số đầu vào. Các tham số đầu vào này được kiểm tra bằng các phép thử và sai số để đảm bảo kết quả phân cụm cao nhất trong quá trình tính toán lẫn quá trình liên

Thuật toán AH chỉ yêu cầy định nghĩa hàm khoảng cách giữa các cụm. Ta cũng có thể dùng độ tương tự đẻ thay thế độ đo khoảng cách. Chú ý là giá trị của 2 độ đo này là tỉ lệ nghịch với nhau. Nếu dùng độ đo khoảng cách, giả sử S1 và S2 là 2 cụm, có một số phương pháp tính khoảng cách giữa hai cụm S1 và S2 là d(S1,S2) như sau:

 Độ đo khoảng cách gần nhất (single-link): Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 phần tử “gần” nhau nhất của 02 cụm đó:

Hình 2.12. Độ đo single-link.

 Độ đo khoảng cách xa nhất (complete-link): Khoảng cách giữa 02 cụm được xác định là khoảng cách giữa 02 phần tử “xa” nhau nhất của 02 cụm đó:

Hình 2.13. Độ đo complete-link.

 Độ đo khoảng cách trọng tâm (centroid-link): Khoảng cách giữa 02 cụm đượcxác định là khoảng cách giữa 02 trọng tâm của 02 cụm đó:

(2.9)

(2.10)

Hình 2.14. Độ đo centroid-link.

 Độ đo khoảng cách trung bình nhóm (group-average): Khoảng cách giữa 02 cụm được xác định là khoảng cách trung bình giữa các phần tử thuộc về 02 cụm đó:

Hình 2.15. Độ đo group-average.

Tương tự như giải thuật phân cấp khác, mục đích của AH là làm cực đại độ tương tự giữa các phần tử dữ liệu trong nội tại một cụm. Trong quá trình AH hoạt động, các cụm được ghép lại với nhau tạo thành một cụm ở cấp cao hơn, đọ tương tự nội tại của các cụm mới này sẽ giảm so với các cụm ở cấp thấp hơn trong cây phân cấp (xem minh họa trong hình 2.16).

Hình 2.16. Một cây phân cấp của thuật toán phân cụm AH. (2.12) (2.12)

c. Nhận xét về các độ đo

 Độ đo single-link:

- Mang tính chất cục bộ: Chỉ quan tâm đến những vùng mà ở đó có phần tử của 2 cụm gần nhau nhất, không quan tâm đến các phần tử khác trong cụm cũng như cấu trúc tổng thể của các cụm.

- Chất lượng phân cụm kém khi chỉ có 2 phần tử trong 2 cụm là rất gần nhau trong khi các phần tử khác ở phân tán rất xa nhau.

 Độ đo complete-link:

- Khoảng cách 2 cụm dựa trên khoảng cách 2 phần tử xa nhau nhất ⟹ Việc ghép 2 cụm sẽ tạo ra cụm mới có đường kính nhỏ nhất.

- Chất lượng phân cụm kém khi 2 phần tử trong 2 cụm ở rất xa nhau nhưng thực tế trọng tâm 2 cụm lại ở rất gần nhau.

 Độ đo group-average:

- Tính toán khoảng cách của 2 cụm dựa trên khoảng cách của toàn bộ các cặp phần tử trong 2 cụm chứ không chỉ dựa trên một cặp phần tử duy nhất ⟹ tránh được nhược điểm của single-link và complete-link.

 Độ đo centroid-link:

- Khắc phục được nhược điểm của single/complete-link.

- Vẫn có nhược điểm là khoảng cách giữa các cụm khi từ đi mức dưới lên mức trên của cây phân cấp có thể là không tăng dần (do trọng tâm các cụm ở mức cao nhiều khi gần nhau hơn các cụm ở mức dưới) ⟹ Trái với giả thiết về độ kết dính “Các cụm nhỏ thường có độ kết dính cao hơn các cụm có kích thước lớn hơn”.

2.5. So sánh thuật toán K-means và thuật toán AH

2.5.1. Thuật toán K-means

 Độ phức tạp tính toán:

- Độ phức tạp thuật toán O (NkT) trong đó N là số đối tượng được phân cụm, k số cụm và T là số vòng lặp trong quá trình phân cụm.

- Thường T, k << N nên ta có thể coi độ phức tạp của thuật toán là O (N).

 Ưu, nhược điểm o Ưu điểm:

 Tính mở rộng cao, phù hợp với lượng dữ liệu lớn.

 Thời gian thực hiện thuật toán ít.

 Kết thúc ở điểm tối ưu cục bộ, có thể dùng thuật toán di truyền để tìm tối ưu toàn cục.

o Nhược điểm:

 Cần chỉ định trước k cụm.

 Không phù hợp với miền dữ liệu không lồi hay cụm có kích thước khác nhau.

 Chỉ thực hiện tốt khi xác định được trị số trung bình của các đối tượng.

 Áp dụng tạo cây phân cấp

o Tạo ra cây phân cấp từng bước một.

o Tạo cây phân cấp ở mức một sau khi tiến hành phân cụm lần một bộ dữ liệu lớn.

o Tiếp tục tạo chủ đề mức hai và các mức sau sau khi tiếp tục tiến hành phân cụm cho bộ dữ liệu thuộc từng chủ đề con.

o Cây phân cấp được tạo ra bằng cách kết hợp các lần tiến hành phân cụm.

2.5.2. Thuật toán AH

 Độ phức tạp thuật toán: Độ phức tạp thuật toán là O (N2) trong đó N là số đối tượng được phân cụm.

 Ưu, nhược điểm: o Ưu điểm:

 Khái niệm đơn giản.

 Khi cụm được trộn hay tách thì quyết định là vĩnh cửu vì thế các phương pháp khác nhau cần được xem xét được rút giảm.

o Nhược điểm:

 Quyết định trộn tách các cụm là vĩnh cửu nên thuật toán không có tính quay lui, nếu có quyết định sai thì không thể khắc phục lại.

 Độ phức tạp thuật toán cao, thời gian thực hiện phân cụm lâu.

 Áp dụng tạo cây phân cấp: Thuật toán tạo ra cây phân cấp ngay trong quá trình phân cụm.

CHƢƠNG 3. THỰC NGHIỆM 3.1. Xây dựng bộ CSDL thực nghiệm 3.1. Xây dựng bộ CSDL thực nghiệm

Để phục vụ cho cho quá trình thử nghiệm thuật toán gộp nhóm điểm nâng cao tốc độ hiển thị trên Web (gọi tắt là dữ liệu thực nghiệm), học viên đã xây dựng bộ cơ sở dữ liệu điểm ATM trong phạm vi Thành phố Hà Nội. Dữ liệu được lấy chủ yếu từ nguồn Googlemaps API (URL: https://maps.googleapis.com) dưới dạng Shapefile (*.shp). Dữ liệu được chuẩn hóa và chỉnh sửa trên phần mềm ArcMap.

Hình 3.1. Biên tập dữ liệu trên phần mềm ArcMap Sau khi biên tập và chuẩn hóa dữ liệu có cấu trúc như sau:

Hình 3.2. Cấu trúc bảng thuộc tính của dữ liệu

Dữ liệu bao gồm 1393 đối tượng với tọa độ thuộc hệ tọa độ địa lý WGS84 – ESPG 4326

Hình 3.3. Bảng thuộc tính của dữ liệu ATM khu vực Hà Nội

3.2. Import dữ liệu vào hệ quản trị CSDL PostgreSQL

 Tạo Databases trong PostgreSQL để lưu trữ cơ sở dữ liệu: nhấp chuột phải vào Databases trong Object browser chọn New Databases xuất hiện hộp thoại.

Hình 3.4. Hộp thoại tạo Databases (Nguồn: Phần mềm PostgreSQL) Trong hộp thoại có: Trong hộp thoại có:

 Name: tên cơ sở dữ liệu muốn tạo db_test

 Owner: chọn postges

Nhấp chuột chọn OK, khởi tạo thành công một Database mới có tên db_test

 Đưa shapefile lên Databases Tp Hà Nội: trên thanh công cụ của postgreSQL chọn Plugins/PostGIS Shapefile and DBF Loader 2.1 xuất hiện hộp thoại:

Hình 3.6. Hộp thoại đưa shapefile lên Databases (Nguồn: Phần mềm PostgreSQL) Trong đó: Trong đó:

 Shape File: chọn shapefile cần đưa lên Databases Tp Hà Nội

 Destination Table: đặt tên cho shapefile

 SRID: mã số hệ tọa độ tương ứng với shapefile (4326) Nhấp chuột trái vào Options xuất hiện hộp thoại

Hình 3.7. Hộp thoại Import Options (Nguồn: Phần mềm PostgreSQL) Trong đó: Trong đó:

 DBF file character encoding: mặc định là UTF-8. Nếu ko được thì chuyển mã LATIN1

 Chọn dấu tick vào hai ô: Create spatial index automatically after load và Load data using COPY rather than INSERT. Nhấp chuột chọn OK, chọn Import, tạo thành công cơ sở dữ liệu trong Databases.

Hình 3.8. Cơ sở dữ liệu trong Databases db_test - atm (Nguồn: Phần mềm PostgreSQL) PostgreSQL)

3.3. Lập trình xây dựng trang Web thử nghiệm

3.3.1. Xây dựng trang Web và hiển thị dữ liệu điểm ATM

Để phục vụ cho quá trình thử nghiệm thuật toán học viên tiến hành xây dựng một trang Web đơn giản dựa trên nền tảng Googlemaps API (https://www.maps.google.com) để hiển thị các đối tượng ATM trên nền bản đồ nền Googlemap. Các thông số cơ bản của trang Web như sau:

Bảng 3.1. Các hạng mục xây dựng trang Web thử nghiệm

STT Hạng mục Mô tả

1 Máy chủ Web Wamp Server

2 Máy chủ bản đồ Google Maps Server

3 Lập trình giao diện HTML, CSS

4 Lập trình tương tác Database PHP 5 Lập trình tương tác người dùng JavaScript

6 Lập trình hiển thị dữ liệu điểm ATM Sử dụng lớp Google Maps OverLays 7 Lập trình gộp điểm (Phân cụm) trên bản

đồ

Ứng dụng thuật toán phân cấp Agglomerative Hirearchical (AH) kết hợp ngôn ngữ lập trình Javascript Luận văn tập trung vào trình bày ứng thuật toán phân cấp Agglomerative Hirearchical nhằm nâng cao tốc độ hiển thị dữ liệu điểm trên Web do đó chỉ trình bày tóm tắt về quy trình xây dựng trang Web và hiển thị dữ liệu chưa gộp nhóm.

Hình 3.10. Mã tạo trang Web với bản đồ nền GoogleMaps (nguồn:googlemaps)

Hình 3.11. Hiển thị dữ liệu điểm ATM trên Web (chưa gộp nhóm)

3.3.2. Ứng dụng thuật toán phân cấp Agglomerative Hirearchical lập trình tăng tốc độ hiển thị dữ liệu điểm ATM độ hiển thị dữ liệu điểm ATM

 Tóm tắt nguyên lý gộp điểm trên Web

Như đã trình bày ở chương 2 của luận văn, sau khi đã tải lên danh sách các điểm cây ATM lên bản đồ, cần tính toán ma trận khoảng cách tại mức zoom hiện hành giữa các điểm ATM với nhau và sắp xếp theo thứ tự tăng dần. Trong đó những điểm có khoảng cách gần nhau nằm trong giới hạn gộp nhóm sẽ được gộp lại thành một nhóm. Có thể mô tả quá trình gộp nhóm như hình dưới

=>

Hình 3.12. Minh họa quá trình gộp nhóm bằng thuật toán Agglomerative Hirearchical

 Khoảng cách cho phép Phân cụm

Tính toán khoảng cách giữa các đối tượng được thực hiện thông qua tọa độ màn hình, đơn vị này là bất biến đối với mọi mức zoom của bản đồ. Trong quá trình thử nghiệm học viên nhận thấy rằng khi 2 đối tượng trên màn hình cách nhau khoảng 20 pixels sẽ xảy ra sự chồng lấn vị trí. Tuy nhiên để đảm bảo tính thẩm mỹ học viên đã chọn 80 pixel làm giới hạn để gộp nhóm. Để xác định khoảng cách giữa 2 điểm trên màn hình theo đơn vị pixels cần tính chuyển đơn vị từ tọa độ thực ( tọa độ địa lý) sang tọa độ màn hình (pixel).

 Chuyển đổi từ tọa độ thực sang tọa độ màn hình:

 Tính toán ma trận khoảng cách và tự động gộp nhóm điểm

Sau khi đã có công thức tính tọa độ và khoảng cách giữa các đối tượng ở hệ tọa độ màn hình (pixels,pixels) tiến hành lập trình gộp điểm.

3.3.3. Đánh giá hiệu suất của việc gộp nhóm điểm.

Bảng 3.2. Thống kê hiệu suất phân cụm với thuật toán AH

Mức Zoom Số điểm Mức độ tăng tốc hiển thị

20 1393 1 19 1119 1.2 18 974 1.4 17 805 1.7 16 601 2.3

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp nâng cao tốc độ hiển thị dữ liệu trên bản đồ trực tuyến 04 (Trang 41)

Tải bản đầy đủ (PDF)

(61 trang)