1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu phương pháp phân cụm dữ liệu bản đồ véc tơ và ứng dụng

74 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 1,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khai phá dữ liệu không gian được sử dụng nhiều trong các hệ thống thông tin địa lý GIS, viễn thám, khai phá dữ liệu ảnh, ảnh y học, rô bốt dẫn đường, … Khám phá tri thức từ dữ liệu không

Trang 1

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

- -

MAI ĐĂNG CƯỜNG

NGHIÊN CỨU PHƯƠNG PHÁP PHÂN CỤM DỮ LIỆU BẢN

ĐỒ VÉC TƠ VÀ ỨNG DỤNG

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

Chuyên ngành : Khoa học máy tính

Mã số : 60 48 01

Thái Nguyên, năm 2011

Trang 2

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn sâu sắc tới PGS.TS Đặng Văn Đức người đã tận tình có những chỉ bảo cần thiết để giúp đỡ tôi trong suốt quá trình nghiên cứu

và phát triển luận văn

Xin chân thành cảm ơn các bạn công tác tại Viện Công nghệ thông tin đã

hỗ trợ tôi rất nhiều về mặt công nghệ sử dụng trong luận văn

Xin chân thành cảm ơn quý thầy cô trong Viện Công nghệ thông tin, Trường Đại học Công nghệ thông tin và Truyền thông -Đại học Thái Nguyên đã tận tình giảng dạy cho tôi những kiến thức quý báu trong suốt thời gian học tập tại trường

Xin trân thành cảm ơn các bạn cùng lớp, đồng nghiệp và đơn vị công tác

đã tạo điều kiện cho tôi hoàn thành luận văn này

Xin gửi lời cảm ơn đến gia đình đã động viên tôi trong suốt quá trình học tập và làm luận văn

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

MỤC LỤC 2

DANH MỤC CÁC HÌNH 4

TỔNG QUAN 5

CHƯƠNG 1 – KHÁI QUÁT PHÂN CỤM DỮ LIỆU VÀ DỮ LIỆU BẢN ĐỒ VÉC TƠ 7

1.1 Khái niệm và mục tiêu của phân cụm dữ liệu 7

1.2 Các ứng dụng của phân cụm dữ liệu 9

1.3 Các yêu cầu của phân cụm dữ liệu 9

1.4 Hệ thống thông tin địa lý 11

1.4.1 Một số định nghĩa về hệ thống thông tin địa lý 11

1.4.2 Các lĩnh vực sử dụng 13

1.4.3 Biểu diễn dữ liệu địa lý 14

1.4.3.1 Mô hình véctơ 16

1.4.3.2 Mô hình raster 18

1.4.4 Cấu trúc lưu trữ dữ liệu địa lý 22

1.4.4.1 Cây tứ phân 23

1.4.4.2.Cây R – tree 26

1.4.4.3 Cây R* - tree 27

1.4.4.4 Cây k-d-tree 29

1.5 Cấu trúc dữ liệu bản đồ véc tơ 31

1.5.1 Khái niệm 31

1.5.2.Kiểu đối tượng điểm (Points) 31

1.5.3 Kiểu đối tượng đường (Arcs) 32

1.5.4.Kiểu đối tượng vùng (Polygons) 32

1.5.5 Cấu trúc dữ liệu véctơ 33

1.5.5.1 Cấu trúc Spaghetti 33

1.5.5.2 Cấu trúc Topology 34

1.6 Kỹ thuật tiếp cận trong phân cụm dữ liệu 34

CHƯƠNG 2 - CÁC THUẬT TOÁN PHÂN CỤM DỮ LIỆU 36

2.1 Giới thiệu về phân cụm dữ liệu bản đồ véctơ 36

2.1.1.Phân cụm dữ liệu và một số khái niệm liên quan 36

2.1.2.Phân cụm dữ liệu bản đồ 38

2.1.2.1 Mục tiêu của ứng dụng 39

2.1.2.2 Cân đối giữa chất lượng và tốc độ 39

2.1.2.3 Đặc tính của dữ liệu 40

2.2 Các phương pháp phân cụm dữ liệu bản đồ véc tơ 41

2.2.1 Phương pháp phân cụm phân hoạch 41

2.2.2 Phương pháp phân cụm phân cấp 41

2.2.3 Phương pháp phân cụm dựa trên mật độ 42

2.2.4 Phương pháp phân cụm dựa trên lưới 42

2.2.5 Phương pháp phân cụm dựa trên mô hình 43

Trang 4

2.2.6 Phương pháp phân cụm có dữ liệu ràng buộc 44

2.3 Thuật toán phân cụm dữ liệu bản đồ không gian véc tơ 45

2.3.1 Phương pháp phân đoạn 45

2.3.1.1 Thuật toán k-means 46

2.3.1.2 Thuật toán k-medoids 47

2.3.2.Phương pháp phân cấp 49

2.3.2.1 Thuật toán BIRCH 50

2.3.2.2 Thuật toán CHAMELEON 51

2.3.3.Phương pháp dựa trên mật độ 52

2.3.3.1 Thuật toán DBSCAN 53

2.3.3.2 Thuật toán DENCLUE 54

2.3.4.Phương pháp dựa trên lưới 56

2.3.4.1 Thuật toán STING 56

2.3.4.2 Thuật toán CLIQUE 57

2.3.5.Phương pháp phân cụm dựa trên ràng buộc 59

CHƯƠNG 3 – XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 62

3.1 Phát biểu bài toán 62

3.2 Xây dựng bản đồ véc tơ hệ thống khách sạn nội thành Hà Nội 63

3.2.1 Thu thập dữ liệu khách sạn nội thành Hà Nội 63

3.2.2 Xây dựng bản đồ nền nội thành Hà Nội 63

3.2.2.1.Quét số hóa bản đồ giấy 63

3.2.2.2.Nắn chính bản đồ véc tơ 63

3.2.3.3.Kết nạp thông tin thuộc tính 64

3.2.3 Xây dựng lớp bản đồ khách sạn nội thành Hà Nội 64

3.3 Cài đặt thử nghiệm thuật toán 64

3.4 Đánh giá kết quả thử nghiệm 69

3.4.1 Dữ liệu gồm 189 mẫu, số cụm k=8 69

3.4.2 Dữ liệu gồm 189 mẫu, số cụm k=4 70

3.4.3 Dữ liệu gồm 189 mẫu, số cụm k=5 70

KẾT LUẬN 72

TÀI LIỆU THAM KHẢO 73

Trang 5

DANH MỤC CÁC HÌNH

Hình 1.1 Mô tả tập dữ liệu được phân thành 3 cụm………

Hình 1.2 Các tầng bản đồ………

Hình 1.3 Biểu diễn vector………

Hình 1.4 Mô hình Spaghetti………

Hình 1.5 Mô hình Topological………

Hình 1.6 Mô hình TIN………

Hình 1.7 Biểu diễn thế giới bằng mô hình Raster………

Hình 1.8 Biểu diễn giá trị của ô………

Hình 1.9 Biểu diễn liệt kê toàn bộ………

Hình 1.10 Biểu diễn Mã loạt dài………

Hình 1.11 Sự ảnh hưởng của độ phân giải………

Hình 1.12 Cây tứ phân lưu trữ đối tượng vùng………

Hình 1.13 Cây tứ phân PR………

Hình 1.14 Biểu diễn cây R tree………

Hình 1.15 Các khả năng nhóm hình chữ nhật trong R* - tree………

Hình 1.16 Cây k-d-tree 2 chiều………

Hình 1.17 Dữ liệu vector biểu diễn dưới dạng điểm (Point)………

Hình 1.18 Dữ liệu vector biểu diễn dưới dạng Acr………

Hình 1.19 Dữ liệu vector biểu diễn dưới dạng vùng (Poligan)………

Hình 1.20 Minh họa dữ liệu Spaghetti………

Hình 1.21 Các đối tượng trong mô hình Topology………

Hình 2.1 Các chiến lược phân cụm phân cấp………

Hình 2.2 Cấu trúc phân cấp………

Hình 2.3 Các cách mà các cụm có thể đưa ra………

Hình 2.4 Các bước thuật toán CHAMELION………

Hình 2.5 Ba lớp liên kết trong cấu trúc STRING………

Trang 6

TỔNG QUAN

Trong cuộc sống, chúng ta đã gặp rất nhiều ứng dụng của bài toán phân cụm Chẳng hạn như trong ngành bưu điện, hàng ngày bưu điện phải phân loại thư theo mã nước, trong mã nước lại phân loại theo mã tỉnh/thành phố, sau đó khi thư về đến bưu điện tỉnh thì bưu điện tỉnh lại phải phân loại thư theo quận/huyện để gửi đi, đến bưu điện quận/huyện lại phân loại thư theo xã/phường để gửi thư Đó chính là một ứng dụng của bài toán phân cụm

Khai phá dữ liệu không gian hay còn gọi là khai phá tri thức từ dữ liệu không gian là một lĩnh vực có nhu cầu rất cao Bởi lẽ dữ liệu đầu vào ở đây bao gồm một khối lượng dữ liệu không gian khổng lồ đã được thu thập từ nhiều ứng dụng khác nhau, từ thiết bị viễn thám đến hệ thống thông tin địa lý, từ bản đồ số,

từ các hệ thống quản lý và đánh giá môi trường, … Con người không đủ khả năng để phân tích được khối lượng dữ liệu khổng lồ này

Khai phá dữ liệu không gian được sử dụng nhiều trong các hệ thống thông tin địa lý (GIS), viễn thám, khai phá dữ liệu ảnh, ảnh y học, rô bốt dẫn đường,

… Khám phá tri thức từ dữ liệu không gian có thể được thực hiện dưới nhiều hình thức khác nhau như sử dụng các quy tắc đặc trưng và quyết định, trích rút

và mô tả các cấu trúc hoặc cụm nổi bật, kết hợp không gian, …

Trong quá trình khai phá và phân tích dữ liệu không gian, bước làm sạch

dữ liệu có một vai trò quan trọng Để thực hiện bước này, phương pháp được quan tâm và phát triển nhiều nhất là phương pháp phân cụm Phương pháp này dựa trên lý thuyết thống kê và cho phép tìm ra cấu trúc hoặc các cụm trực tiếp từ

dữ liệu

Luận văn này giới thiệu một số phương pháp phân cụm dữ liệu bản đồ véc

tơ đang được sử dụng hiện nay, và một số thuật toán phân cụm liên quan Đồng thời luận văn giới thiệu và cài đặt thử nghiệm thuật toán phân cụm dữ liệu K-means hỗ trợ tìm kiếm theo vị trí trên bản đồ địa lý của thành phố Hà nội

Bố cục luận văn gồm:

- Chương I: Khái quát phân cụm dữ liệu và dữ liệu bản đồ véc tơ

Trang 7

- Chương II: Các thuật toán phân cụm dữ liệu

- Chương II: Cài đặt chương trình thử nghiệm

Trang 8

CHƯƠNG 1 – KHÁI QUÁT PHÂN CỤM DỮ LIỆU VÀ DỮ LIỆU BẢN

ĐỒ VÉC TƠ 1.1 Khái niệm và mục tiêu của phân cụm dữ liệu

Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng Phân cụm dữ liệu là một ví dụ của phương pháp học không

có thầy Không giống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể coi phân cụm

dữ liệu là một cách học bằng quan sát, trong khi phân lớp dữ liệu là học bằng ví dụ… Ngoài ra phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử

lí cho các thuật toán khai phá dữ liệu khác như là phân loại và mô tả đặc điểm,

có tác dụng trong việc phát hiện ra các cụm

Hình 1.1 Mô tả tập dữ liệu vay nợ được phân thành 3 cụm

Phân cụm có ý nghĩa rất quan trọng trong hoạt động của con người Ngay từ lúc bé, con người đã học cách làm thế nào để phân biệt giữa mèo và chó, giữa động vật và thực vật và liên tục đưa vào sơ đồ phân loại trong tiềm thức của mình Phân cụm được sử dụng rộng rãi trong nhiều ứng dụng, bao gồm nhận dạng mẫu, phân tích dữ liệu, xử lý ảnh, nghiên cứu thị trường Với

tư cách là một chức năng khai phá dữ liệu, phân tích phân cụm có thể được sử dụng như một công cụ độc lập chuẩn để quan sát đặc trưng của mỗi cụm thu được bên trong sự phân bố của dữ liệu và tập trung vào một tập riêng biệt của các cụm để giúp cho việc phân tích đạt kết quả

Trang 9

Một vấn đề thường gặp trong phân cụm là hầu hết các dữ liệu cần cho phân cụm đều có chứa dữ liệu nhiễu do quá trình thu thập thiếu chính xác hoặc thiếu đầy đủ, vì vậy cần phải xây dựng chiến lược cho bước tiền xử lí

dữ liệu nhằm khắc phục hoặc loại bỏ nhiễu trước khi chuyển sang giai đoạn phân tích cụm dữ liệu Nhiễu ở đây được hiểu là các đối tượng dữ liệu không chính xác, không tường minh hoặc là các đối tượng dữ liệu khuyết thiếu thông tin về một số thuộc tính Một trong các kỹ thuật xử lí nhiễu phổ biến

là việc thay thế giá trị các thuộc tính của đối tượng nhiễu bằng giá trị thuộc tính tương ứng Ngoài ra, dò tìm phần tử ngoại lai cũng là một trong những hướng nghiên cứu quan trọng trong phân cụm, chức năng của nó là xác định một nhóm nhỏ các đối tượng dữ liệu khác thường so với các dữ liệu trong cơ sở dữ liệu (CSDL), tức là các đối tượng dữ liệu không tuân theo các hành vi hoặc mô hình dữ liệu nhằm tránh sự ảnh hưởng của chúng tới quá trình

và kết quả của phân cụm

Mục tiêu của phân cụm là xác định được bản chất nhóm trong tập dữ liệu (DL) chưa có nhãn Nhưng để có thể quyết định được cái vì tạo thành một cụm tốt Nó có thể được chỉ ra rằng không có tiêu chuẩn tuyệt đối “tốt” mà

có thể không phụ thuộc vào kết qủa phân cụm Vì vậy, nó đòi hỏi người sử dụng phải cung cấp tiêu chuẩn này, theo cách mà kết quả phân cụm sẽ đáp ứng yêu cầu

Theo các nghiên cứu cho thấy thì hiện nay chưa có một phương pháp phân cụm tổng quát nào có thể giải quyết trọn vẹn cho tất cả các dạng cấu trúc CSDL Hơn nữa, các phương pháp phân cụm cần có cách thức biểu diễn cấu trúc của các CSDL, với mỗi cách thức biểu diễn khác nhau sẽ có tương ứng một thuật toán phân cụm phù hợp Vì vậy phân cụm dữ liệu vẫn đang là một vấn

đề khó và mở, vì phải giải quyết nhiều vấn đề cơ bản một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác nhau, đặc biệt là đối với dữ liệu hỗn hợp đang ngày càng tăng trong các hệ quản trị dữ liệu và đây cũng là một trong những thách thức lớn trong lĩnh vực khai phá dữ liệu (KPDL)

Trang 10

1.2 Các ứng dụng của phân cụm dữ liệu

Phân cụm dữ liệu có thể được ứng dụng trong nhiều lĩnh vực như:

Thương mại: Tìm kiếm nhóm các khách hàng quan trọng có đặc trưng

tương đồng và những đặc tả họ từ các bản ghi mua bán trong CSDL

Sinh học: Phân loại các gen với các chức năng tương đồng và thu được

các cấu trúc trong mẫu

Thư viện: Phân loại các cụm sách có nội dung và ý nghĩa tương đồng

nhau để cung cấp cho độc giả

Bảo hiểm: Nhận dạng nhóm tham gia bảo hiểm có chi phí bồi

thường cao, nhận dạng gian lận thương mại

Quy hoạch đô thị: Nhận dạng các nhóm nhà theo kiểu và vị trí địa lí,

nhằm cung cấp thông tin cho quy hoạch đô thị

Nghiên cứu trái đất: Phân cụm để theo dõi các tâm động đất

nhằm cung cấp thông tin cho nhận dạng các vùng nguy hiểm

WWW: Có thể khám phá các nhóm tài liệu quan trọng, có nhiều ý nghĩa

trong môi trường Web Các lớp tài liệu này trợ giúp cho việc khai phá thông tin

từ dữ liệu

1.3 Các yêu cầu của phân cụm dữ liệu

Phân cụm là một thách thức trong lĩnh vực nghiên cứu ở chỗ những ứng dụng tiềm năng của chúng được đưa ra ngay chính trong những yêu cầu đặc biệt của chúng Sau đây là những yêu cầu cơ bản của phân cụm trong KPDL:

Có khả năng mở rộng: Nhiều thuật toán phân cụm làm việc tốt với

những tập dữ liệu nhỏ chứa ít hơn 200 đối tượng, tuy nhiên, một CSDL lớn có thể chứa tới hàng triệu đối tượng Việc phân cụm với một tập dữ liệu lớn có thể làm ảnh hưởng tới kết quả Vậy làm cách nào để chúng ta có thể phát triển các thuật toán phân cụm có khả năng mở rộng cao đối với các CSDL lớn ?

Khả năng thích nghi với các kiểu thuộc tính khác nhau: Nhiều thuật

toán được thiết kế cho việc phân cụm dữ liệu có kiểu khoảng (kiểu số) Tuy nhiên, nhiều ứng dụng có thể đòi hỏi việc phân cụm với nhiều kiểu dữ liệu

Trang 11

khác nhau, như kiểu nhị phân, kiểu tường minh (định danh - không thứ tự), và dữ liệu có thứ tự hay dạng hỗn hợp của những kiểu dữ liệu này

Khám phá các cụm với hình dạng bất kỳ: Nhiều thuật toán phân cụm

xác định các cụm dựa trên các phép đo khoảng cách Euclidean và khoảng cách Manhattan Các thuật toán dựa trên các phép đo như vậy hướng tới việc tìm kiếm các cụm hình cầu với mật độ và kích cỡ tương tự nhau Tuy nhiên, một cụm có thể có bất cứ một hình dạng nào Do đó, việc phát triển các thuật toán có thể khám phá ra các cụm có hình dạng bất kỳ là một việc làm quan trọng

Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào: Nhiều

thuật toán phân cụm yêu cầu người dùng đưa vào những tham số nhất định trong phân tích phân cụm (như số lượng các cụm mong muốn) Kết quả của phân cụm thường khá nhạy cảm với các tham số đầu vào Nhiều tham số rất khó để xác định, nhất là với các tập dữ liệu có lượng các đối tượng lớn Điều này không những gây trở ngại cho người dùng mà còn làm cho khó có thể điều chỉnh được chất lượng của phân cụm

Khả năng thích nghi với dữ liệu nhiễu: Hầu hết những CSDL thực

đều chứa đựng dữ liệu ngoại lai, dữ liệu lỗi, dữ liệu chưa biết hoặc dữ liệu sai Một số thuật toán phân cụm nhạy cảm với dữ liệu như vậy và có thể dẫn đến chất lượng phân cụm thấp

Ít nhạy cảm với thứ tự của các dữ liệu vào: Một số thuật toán phân

cụm nhạy cảm với thứ tự của dữ liệu vào, ví dụ như với cùng một tập dữ liệu, khi được đưa ra với các thứ tự khác nhau thì với cùng một thuật toán có thể sinh ra các cụm rất khác nhau Do đó, việc quan trọng là phát triển các thuật toán mà ít nhạy cảm với thứ tự vào của dữ liệu

Số chiều lớn: Một CSDL hoặc một kho dữ liệu có thể chứa một số

chiều hoặc một số các thuộc tính Nhiều thuật toán phân cụm áp dụng tốt cho

dữ liệu với số chiều thấp, bao gồm chỉ từ hai đến 3 chiều Người ta đánh giá việc phân cụm là có chất lượng tốt nếu nó áp dụng được cho dữ liệu có từ 3 chiều trở lên Nó là sự thách thức với các đối tượng dữ liệu cụm trong không gian với số

Trang 12

chiều lớn, đặc biệt vì khi xét những không gian với số chiều lớn có thể rất thưa

và có độ nghiêng lớn

Phân cụm ràng buộc: Nhiều ứng dụng thực tế có thể cần thực hiện

phân cụm dưới các loại ràng buộc khác nhau Một nhiệm vụ đặt ra là đi tìm những nhóm dữ liệu có trạng thái phân cụm tốt và thỏa mãn các ràng buộc

Dễ hiểu và dễ sử dụng: Người sử dụng có thể chờ đợi những kết quả

phân cụm dễ hiểu, dễ lý giải và dễ sử dụng Nghĩa là, sự phân cụm có thể cần được giải thích ý nghĩa và ứng dụng rõ ràng

Với những yêu cầu đáng lưu ý này, nghiên cứu của ta về phân tích phân cụm diễn ra như sau: Đầu tiên, ta nghiên cứu các kiểu dữ liệu khác và cách chúng có thể gây ảnh hưởng tới các phương pháp phân cụm Thứ hai, ta đưa ra một cách phân loại chung trong các phương pháp phân cụm Sau đó, ta nghiên cứu chi tiết mỗi phương pháp phân cụm, bao gồm các phương pháp phân hoạch, phân cấp, dựa trên mật độ, Ta cũng khảo sát sự phân cụm trong không gian đa chiều và các biến thể của các phương pháp khác

1.4 Hệ thống thông tin địa lý

Có nhiều cách diễn giải khác nhau cho từ viết tắt GIS, tuy nhiên các cách diễn giải đó đều mô tả việc nghiên cứu các thông tin địa lý và các khía cạnh khác liên quan đến địa lý như pháp lý, kinh tế, …

1.4.1 Một số định nghĩa về hệ thống thông tin địa lý

GIS cũng giống như các hệ thống thông tin khác, có khả năng nhập, tìm kiếm và quản lý các dữ liệu lưu trữ, để từ đó đưa ra các thông tin cần thiết cho người sử dụng Ngoài ra, GIS còn cho phép lập bản đồ với sự trợ giúp của máy tính, giúp cho việc biểu diễn dữ liệu bản đồ tốt hơn so với cách truyền thống Dưới đây là một số định nghĩa GIS hay dùng:

Định nghĩa của dự án The Geographer's Craft, Khoa Địa lý, Trường Đại học Texas

GIS là cơ sở dữ liệu số chuyên dụng trong đó hệ trục tọa độ không gian là phương tiện tham chiếu chính GIS bao gồm các công cụ để thực hiện những công việc sau:

Trang 13

- Nhập dữ liệu từ bản đồ giấy, ảnh vệ tinh, ảnh máy bay, số liệu điều tra

và các nguồn khác

- Lưu trữ dữ liệu, khai thác, truy vấn cơ sở dữ liệu

và dữ liệu không gian

- Lập báo cáo, bao gồm bản đồ chuyên đề, bảng biểu, biểu đồ và kế hoạch

Từ định nghĩa trên, ta thấy: Thứ nhất, GIS có quan hệ với ứng dụng cơ sở

dữ liệu Thông tin trong GIS đều liên kết với tham chiếu không gian và GIS sử dụng tham chiếu không gian như phương tiện chính để lưu trữ và truy nhập

thông tin Thứ hai, GIS là công nghệ tích hợp, cung cấp các khả năng phân tích

như phân tích ảnh máy bay, ảnh vệ tinh hay tạo lập mô hình thống kê, vẽ bản đồ Cuối cùng, GIS có thể được xem như một hệ thống cho phép trợ giúp quyết định Cách thức nhập, lưu trữ, phân tích dữ liệu trong GIS phải phản ánh đúng cách thức thông tin sẽ được sử dụng trong công việc lập quyết định hay nghiên cứu cụ thể

Định nghĩa của Viện Nghiên cứu Hệ thống Môi trường ESRI, Mỹ

GIS là một công cụ trên máy tính để lập bản đồ và phân tích những đối tượng đang tồn tại cũng như các sự kiện xảy ra trên Trái đất Công nghệ GIS tích hợp các chức năng cơ sở dữ liệu như truy vấn và thống kê với các chức năng hiển thị và phân tích thống kê bản đồ Với định nghĩa này, GIS được phân biệt với các hệ thông tin khác Có rất nhiều chương trình máy tính sử dụng dữ

liệu không gian (spatial) như AutoCAD và các chương trình thống kê, nhưng

chúng không phải là GIS vì chúng không có khả năng thực hiện các thao tác không gian

Định nghĩa của David Cowen, NCGIA, Mỹ

GIS là hệ thống phần cứng, phần mềm và các thủ tục được thiết kế để thu thập, quản lý, xử lý, phân tích, mô hình hóa và hiển thị các dữ liệu qui chiếu không gian để giải quyết các vấn đề quản lý và lập kế hoạch phức tạp

Trang 14

Một cách đơn giản, có thể hiểu GIS như một sự kết hợp giữa bản đồ (map)

và cơ sở dữ liệu (database)

GIS = Bản đồ + Cơ sở dữ liệu

Bản đồ trong GIS là một công cụ hữu ích cho phép chỉ ra vị trí của từng địa điểm Với sự kết hợp giữa bản đồ và cơ sở dữ liệu, người dùng có thể xem thông tin chi tiết về từng đối tượng/thành phần tương ứng với địa điểm trên bản đồ thông qua các dữ liệu đã được lưu trữ trong cơ sở dữ liệu Ví dụ, khi xem bản đồ

về các thành phố, người dùng có thể chọn một thành phố để xem thông tin về thành phố đó như diện tích, số dân, thu nhập bình quân, số quận/huyện của thành phố, …

1.4.2 Các lĩnh vực sử dụng

Ngày nay, GIS đã chứng tỏ được ưu thế của mình, bởi lẽ GIS có khả năng dùng dữ liệu không gian và phi không gian từ nhiều nguồn khác nhau trong quá trình phân tích dữ liệu GIS được xây dựng dựa trên tri thức của nhiều ngành khoa học:

- Ngành địa lý: ngành liên quan mật thiết đến việc hiểu thế giới và vị trí

của con người trong thế giới

- Ngành bản đồ (cartography): do thông tin địa lý là thông tin tham chiếu

không gian nên GIS có liên quan đến ngành bản đồ Dữ liệu đầu vào của GIS chính là các bản đồ theo chuẩn của ngành này

- Công nghệ viễn thám (remote sensing): gồm kỹ thuật thu thập và xử lý

dữ liệu tại mọi vị trí trên trái đất từ các ảnh vệ tinh và ảnh máy bay Dữ liệu này có thể trộn với các lớp dữ liệu trong GIS

- Ảnh máy bay: với kỹ thuật đo chính xác từ hệ thống trên máy bay, nó sẽ

cung cấp dữ liệu về độ cao trái đất cho GIS Nên bỏ đoạn này

- Bản đồ địa hình: Cung cấp dữ liệu có chất lượng cao về vị trí của ranh

giới đất đai, nhà cửa,

- Khoa đo đạc, ngành thống kê, khoa học tính toán, toán học: kỹ thuật của

các ngành này hỗ trợ cho việc tính toán, thống kê cũng như hiển thị dữ liệu sau khi đã phân tích trong GIS

Trang 15

Công nghệ GIS được sử dụng trong nhiều lĩnh vực khác nhau như bản đồ học, đầu tư, quản lý nguồn tài nguyên, quản lý tài sản, khảo cổ học

(archaeology), phân tích điều tra dân số, đánh giá sự tác động lên môi trường, kế

hoạch đô thị, nghiên cứu tội phạm,… Việc trích rút thông tin từ dữ liệu địa lý thông qua hệ thống GIS bao gồm các câu hỏi cơ bản sau:

- Nhận diện (identification): Nhận biết tên hay các thông tin khác của đối

tượng bằng việc chỉ ra vị trí trên bản đồ Ví dụ, có cái gì tại tọa độ (X, Y)

- Vị trí (location): Câu hỏi này đưa ra một hoặc nhiều vị trí thỏa mãn yêu

cầu Nó có thể là tập tọa độ hay bản đồ chỉ ra vị trí của một đối tượng cụ thể, hay toàn bộ đối tượng Ví dụ, cho biết vị trí các văn phòng của công

ty nào đó trong thành phố

- Xu thế (trend): Câu hỏi này liên quan đến các dữ liệu không gian tạm

thời Ví dụ, câu hỏi liên quan đến xu hướng phát triển thành thị dẫn tới chức năng hiển thị bản đồ của GIS để chỉ ra các vùng lân cận được xây dựng từ 1990 đến 2000

- Tìm đường đi tối ưu (optimal path): Trên cơ sở mạng lưới đường đi (hệ

thống đường bộ, đường thủy ), câu hỏi là cho biết đường đi nào là tối

ưu nhất (rẻ nhất, ngắn nhất, ) giữa 2 vị trí cho trước

- Mẫu (pattern): Câu hỏi này khá phức tạp, tác động trên nhiều tập dữ

liệu Ví dụ, cho biết quan hệ giữa khí hậu địa phương và vị trí của các

nhà máy, công trình công cộng trong vùng lân cận

- Mô hình (model): Câu hỏi này liên quan đến các hoạt động lập kế hoạch

và dự báo.Ví dụ, cần phải nâng cấp, xây dựng hệ thống mạng lưới giao thông, điện như thế nào nếu phát triển khu dân cư về phía bắc thành phố

1.4.3 Biểu diễn dữ liệu địa lý

Hệ thống GIS là sự kết hợp giữa bản đồ và cơ sở dữ liệu Khái niệm về cơ

sở dữ liệu trong hệ thống GIS cũng giống như khái niệm truyền thống, nó bao gồm các bảng có mối liên hệ với nhau cùng phục vụ cho mục đích của người sử dụng Do đó, cơ sở dữ liệu trong GIS sẽ bao gồm các bảng để lưu các thông tin

Trang 16

mô tả về các thành phần/ đối tượng của bản đồ Bản đồ trong GIS có thể được biểu diễn bởi nhiều kiểu mô hình dữ liệu GIS khác nhau Việc hiểu được các loại mô hình dữ liệu của GIS có thể giúp người sử dụng biết dữ liệu được tổ chức như thế nào và dùng dữ liệu đó để phân tích sao cho hiệu quả và chính xác

Do thế giới thực có nhiều đối tượng, để hạn chế sự phức tạp khi quản lý, hệ thống GIS phân chia các đối tượng thành từng lớp Tương ứng với mỗi lớp dữ

liệu là một tầng (layer) bản đồ, các tầng bản đồ có khả năng liên kết với nhau để hình thành bản đồ chuyên đề (thematic) Việc biểu diễn theo tầng là trong suốt

đối với người dùng nên cho phép người dùng xem và phân tích thông tin được lựa chọn theo từng chuyên đề Việc tổ chức thành các tầng nhằm

- Giúp quản lý dữ liệu dễ dàng,

- Chỉ có các đối tượng liên quan đến chuyên đề,

- Hạn chế số lượng thông tin cần gán cho đối tượng bản đồ sẽ quản lý,

- Tăng khả năng cập nhật thông tin và bảo trì dữ liệu vì thông thường mỗi một lớp thông tin có các nguồn tư liệu thu thập khác nhau,

- Hiển thị bản đồ nhanh và dễ truy cập

Người dùng có thể thực hiện các thao tác kết hợp trên nhiều tầng bản đồ để

có thể đưa ra một tầng bản đồ mới phục vụ yêu cầu lấy thông tin Các phép kết hợp này tùy thuộc vào kiểu mô hình lưu trữ dữ liệu của tầng bản đồ đó

Hình 1.2 Các tầng bản đồ

Giả sử ta có bản đồ như trên Hình 1.2 Mỗi nhóm người sử dụng chỉ quan tâm chủ yếu đến một hay vài loại thông tin Thí dụ, sở giao thông công chính sẽ quan tâm nhiều đến đường phố, sở nhà đất sẽ quan tâm nhiều đến các khu dân

Trang 17

cư và công sở, sở thương mại quan tâm nhiều đến phân bổ khách hàng trong vùng Tư tưởng tách bản đồ thành lớp tuy đơn giản nhưng lại mềm dẻo và hiệu quả, chúng cho khả năng giải quyết hữu hiệu về thế giới thực, từ những việc theo dõi điều hành xe cộ trong giao thông, đến các ứng dụng lập kế hoạch và mô hình hoá lưu thông

Mô hình dữ liệu địa lý là các qui tắc được sử dụng để biến đổi đặc trưng địa

lý của thế giới thực thành các đối tượng rời rạc với các mức độ phức tạp khác nhau Việc lựa chọn mô hình dữ liệu phụ thuộc vào loại ứng dụng và kết quả kỳ vọng đạt được Hiện nay, để biểu diễn đồ họa trong mỗi tầng không gian địa lý, GIS sử dụng 2 mô hình dữ liệu cơ bản là mô hình vector và mô hình raster Việc chọn mô hình dữ liệu hợp lý sẽ quyết định sự thành công của việc phân tích của GIS sau này Dưới đây là mô tả sơ lược về các mô hình trên

1.4.3.1 Mô hình véctơ

Mô hình vector sử dụng tọa độ 2 chiều (x, y) để lưu trữ hình khối của các thực thể không gian trên bản đồ 2D Mô hình này sử dụng các đặc tính rời rạc như điểm, đường, vùng để mô tả không gian, đồng thời cấu trúc topo của các đối tượng cũng cần được mô tả chính xác và lưu trữ trong hệ thống

Hình 1.3 Biểu diễn vector

Theo Hình 1.3, các đối tượng không gian được lưu trữ dưới dạng vertor, đồng thời các thuộc tính liên quan đến lĩnh vực cần quản lý (dữ liệu chuyên đề -

thematic data) của đối tượng đó cũng cần kết hợp với dữ liệu trên Các nhân tố

Trang 18

chỉ ra sự tác động qua lại lẫn nhau giữa các đối tượng cũng được quản lý, các nhân tố đó có thể là quan hệ topo (giao/ không giao nhau, phủ, tiếp xúc, bằng nhau, chứa, …), khoảng cách và hướng (láng giềng về hướng nào)

Một số loại mô hình vector:

- Mỳ ống (Spaghetti): không theo cấu trúc topo, đơn giản và dễ quản lý,

nhưng dữ liệu trùng lặp nhiều Mô hình này thường được dùng vào việc

lập bản đồ bằng máy tính trong CAC (Computer assisted Cartography)

Hình 1.4 Mô hình Spaghetti

- Quan hệ Topo (Topological): các đối tượng địa lý trong bản đồ số có

thể được diễn tả bằng việc lưu trữ điểm, vùng trong các bảng mô tả topo Đây là mô hình được sử dụng nhiều nhất trong các hệ thống GIS

Hình 1.5 Mô hình Topological

- Mạng lưới tam giác không đều - TIN (Triangulated Irregular

Network): được hỗ trợ trong GIS 3 chiều để mô tả hình ảnh có độ sâu/

dốc Mô hình thực hiện chia bản đồ thành mạng các tam giác không đều

Trang 19

hàng và cột, mỗi ô có thể là hình vuông hoặc hình chữ nhật và chỉ có duy nhất một giá trị

Hình 1.7 Biểu diễn thế giới bằng mô hình raster

Giá trị của mỗi ô có thể được biểu diễn tại trung tâm, đường biên hoặc phủ trên toàn bộ ô đó

Trang 20

Hình 1.8 Biểu diễn giá trị của ô

Không giống như lưu trữ rõ ràng quan hệ topo trong mô hình vector, vị trí không gian của mỗi ô ẩn chứa bên trong trật tự của ma trận Các ô được lưu trữ

có thứ tự lần lượt theo quy ước lưu trữ (từ trên xuống, từ dưới lên, trái sang phải, phải sang trái) Với mô hình raster, dữ liệu không gian không còn liên tục mà được chia thành các đối tượng rời rạc Kích thước ô được sử dụng trong mô hình raster ảnh hưởng đến kết quả phân tích và chất lượng bản đồ hiển thị, thậm chí

là mất thông tin lưu trữ Trong một số trường hợp, cách lưu trữ này gây tốn bộ nhớ do trong ma trận lưu trữ có nhiều ô không chứa dữ liệu

Dưới đây là một số cách lưu trữ theo mô hình raster:

- Liệt kê toàn bộ (Exhaustive enumeration): mỗi ô chỉ lưu duy nhất một

giá trị, do đó không có sự đụng độ về mặt giá trị Ví dụ minh họa thể hiện trong Hình 1.9

Hình 1.9 Biểu diễn liệt kê toàn bộ

Trang 21

- Mã loạt dài (run-length encoding): đây là kỹ thuật nén ảnh raster

Trong một dòng, nếu có một nhóm các ô liên tiếp cùng một giá trị thì có thể lưu trữ nén lại Thay vì việc lưu giá trị từng ô, người ta chỉ việc ghi giá trị chung của các ô đó và vị trí ô kết thúc chuỗi giá trị chung đó Kết quả biểu diễn được mô tả trong Hình 1.10

Hình 1.10 Biểu diễn mã loạt dài

Mô hình raster có thể lưu trữ ảnh theo nhiều định dạng khác nhau từ cấu trúc dựa trên tệp chuẩn như GIF, JPEG, PNG, TIFF, … đến đối tượng dữ liệu

nhị phân BLOB (binary large object) được trích rút trực tiếp từ hệ quản trị cơ sở

dữ liệu giống như trong mô hình vector

Hệ thống GIS thu thập dữ liệu theo khuôn dạng mô hình raster từ nhiều nguồn như: thông tin chụp từ vệ tinh, máy bay hay các định dạng ảnh khác mà mỗi điểm ảnh có một giá trị, …

Trên thực tế, chọn kiểu mô hình nào để biểu diễn bản đồ là câu hỏi luôn đặt

ra với người sử dụng Việc lưu trữ kiểu đối tượng nào sẽ quyết định mô hình sử dụng Ví dụ nếu lưu vị trí của các khách hàng, các trạm rút tiền hoặc dữ liệu cần tổng hợp theo từng vùng như vùng theo mã bưu điện, các hồ chứa nước, … thì

sử dụng mô hình vector Nếu đối tượng quản lý được phân loại liên tục như loại đất, mức nước hay độ cao của núi, … thì thường dùng mô hình raster Đồng thời, nếu dữ liệu thu thập từ các nguồn khác nhau được dùng một mô hình nào

đó thì có thể chuyển đổi từ mô hình này sang mô hình khác để phục vụ tốt cho việc xử lý của người dùng

Mỗi mô hình có ưu điểm và nhược điểm khác nhau Về mặt lưu trữ, việc lưu trữ giá trị của tất cả các ô/ điểm ảnh trong mô hình raster đòi hỏi không gian nhớ lớn hơn so với việc chỉ lưu các giá trị khi cần trong mô hình vector Cấu

Trang 22

trúc dữ liệu lưu trữ của raster đơn giản, trong khi vector dùng các cấu trúc phức tạp hơn Dung lượng lưu trữ trong mô hình raster có thể lớn hơn gấp 10 đến 100

lần so với mô hình vector Đối với thao tác xếp chồng (overlay), mô hình raster

cho phép thực hiện một cách dễ dàng, trong khi mô hình vector lại phức tạp và khó khăn hơn Về mặt hiển thị, mô hình vector có thể hiển thị đồ họa vector giống như bản đồ truyền thống, còn mô hình raster chỉ hiển thị ảnh nên có thể xuất hiện hình khối tại đường biên của các đối tượng tùy theo độ phân giải của tệp raster Mức độ ảnh hưởng của độ phân giải khi lưu trữ được chỉ ra trong Hình 1.11

Hình 1.11 Sự ảnh hưởng của độ phân giải

Với dữ liệu vector, người dùng có thể bổ sung, co dãn hoặc chiếu bản đồ, thậm chí có thể kết hợp với các tầng bản đồ khác thuộc các nguồn khác nhau, đồng thời dữ liệu này tương thích với môi trường cơ sở dữ liệu quan hệ Hiện nay, mô hình vector được sử dụng nhiều trong các hệ thống GIS bởi các lý do trên, ngoài ra mô hình này cho phép cập nhật và duy trì đơn giản, dễ truy vấn dữ liệu Khi có nhu cầu chuyển đổi dữ liệu từ mô hình vector sang raster (raster hóa

– rasterization) và ngược lại (vector hóa – vectorization) để phục vụ công việc

phân tích dữ liệu trên bản đồ, có thể dùng các phần mềm hỗ trợ chuyển đổi Bản

Trang 23

chất việc chuyển đổi này là GIS thực hiện việc xây dựng lại cấu trúc dữ liệu từ các định dạng dữ liệu khác nhau Ví dụ, ảnh thu được từ vệ tinh satellite có cấu trúc raster, GIS chuyển sang cấu trúc vector bằng việc sinh thêm các đường viền bao quanh các ô cùng loại đồng thời xác định mối quan hệ không gian của các ô

đó

Quá trình chuyển đổi này có thể đòi hỏi thêm nhiều kỹ thuật khác trong xử

lý ảnh Do dữ liệu ảnh số được thu thập và lưu trữ nhiều cách khác nhau, nên nguồn dữ liệu không hoàn toàn tương thích với công việc Hầu hết các hệ thống GIS thương mại đều hỗ trợ công cụ để chuyển đổi dữ liệu giữa hai mô hình trên

1.4.4 Cấu trúc lưu trữ dữ liệu địa lý

Tùy theo mô hình dữ liệu địa lý thì cấu trúc lưu trữ dữ liệu sẽ khác nhau Cấu trúc dữ liệu không gian cho biết các thực thể được tổ chức lưu trữ vật lý như thế nào, từ đó người lập trình hoặc nhà phát triển hệ thống có thể sử dụng các thuật toán thích hợp với cấu trúc dữ liệu đó để xử lý dữ liệu Mục đích của việc tổ chức lưu trữ dữ liệu địa lý chính là tăng tốc độ xử lý, đây là vấn đề cần thiết trong các kỹ thuật cải tiến tốc độ của thuật toán

Một kỹ thuật đơn giản để cải tiến tốc độ khi truy vấn dữ liệu không gian và

dữ liệu thuộc tính là xây dựng cây chỉ số cho trường dữ liệu khóa để kết nối 2

thông tin trên, phương pháp này được gọi là lập chỉ mục không gian (spatial

index) Một kỹ thuật khác đó là tổ chức lưu trữ theo 2 thành phần dữ liệu trên

Với dữ liệu thuộc tính do hệ quản trị cơ sở dữ liệu quản lý, việc tìm kiếm trên các thông tin này được hệ quản trị đảm nhiệm Với thành phần dữ liệu không gian cần tổ chức theo một cấu trúc bất kỳ, thao tác xử lý được thực hiện trực tiếp trên dữ liệu Để tăng tốc độ trong trường hợp này chính là thiết kế cấu trúc dữ

liệu để lưu trữ cho dữ liệu không gian, lý do: Thứ nhất, dữ liệu không gian có

cấu trúc phức tạp, bởi lẽ mỗi đối tượng có thể là điểm, đường, vùng hoặc thậm

chí kết hợp các kiểu dữ liệu trên Thứ hai, dữ liệu không gian luôn thay đổi Thứ

ba, dữ liệu không gian thường có xu hướng nhiều, bộ dữ liệu lớn Thứ tư, không

có đại số chuẩn (standard algebra) trên dữ liệu không gian, nên không có tập

Trang 24

các phép toán đại số chuẩn Cuối cùng, một số thao tác không gian không đóng (closed), ví dụ phép giao của các vùng có thể trả về tập các điểm, đường, vùng

Tùy theo đối tượng không gian quản lý sẽ lựa chọn cấu trúc lưu trữ thích hợp Dữ liệu không gian có thể gồm các đối tượng được hình thành bởi điểm, đường, vùng, bề mặt, khối và thậm chí dữ liệu có thêm chiều không gian Tuy nhiên, trong phạm vi hệ thống GIS 2D chỉ tập trung vào các đối tượng điểm, đường, vùng, nên phần này chỉ đề cập đến một vài cấu trúc dữ liệu sử dụng trong hệ thống này

Hầu hết cấu trúc dữ liệu sử dụng ở đây là cấu trúc cây phân cấp

(hierarchical), sử dụng phép đệ quy chia nhỏ không gian để thu được dữ liệu

cần quản lý Cấu trúc này được sử dụng nhiều trong đồ họa máy tính, xử lý ảnh, robotics, hệ thống GIS

1.4.4.1 Cây tứ phân

Cây tứ phân là cấu trúc dữ liệu cổ điển nhất được sử dụng để thiết kế cho việc truy xuất dữ liệu không gian Cây tứ phân có nhiều dạng khác nhau để tham chiếu không gian 2 chiều, tuy nhiên cấu trúc này có thể phát triển để sử dụng trong không gian k-chiều

Cấu trúc này chia không gian thành 4 phần, mỗi phần được đánh dấu theo

phương hướng NW (North West – Tây Bắc), NE (North East – Đông Bắc), SW (South West – Tây Nam), SE (South East – Đông Nam) hoặc từ trái qua phải, từ

trên xuống và mỗi phần tương ứng một nút trên cây Nếu phần chứa duy nhất một đối tượng quản lý thì dừng, còn phần nào có nhiều hơn một đối tượng lại tiến hành chia tiếp Công việc lặp lại cho đến khi tất cả các đối tượng đều đưa hết vào cây

Cây tứ phân thường dùng để biểu diễn dữ liệu kiểu vùng Người ta xây dựng vùng chứa dữ liệu thành khối hình vuông theo kích thước chuẩn (lũy thừa của 2), sau đó chia thành 4 phần bằng nhau Nếu phần nào thuộc vùng chứa dữ liệu thì điền giá trị 1, ngược lại là 0 Công việc chia và điền giá trị được lặp lại cho đến khi thu được toàn bộ vùng cần quản lý (việc chia có thể lặp đến khi các

Trang 25

ô chia có kích thước đơn vị 1*1) Sau đó, dùng mảng giá trị thu được trong quá trình trên để xây dựng cây

Hình 1.12 biểu diễn vùng dữ liệu cần lưu trữ, việc phân chia vùng và xây dựng cây tứ phân để lưu trữ vùng đó Cây tứ phân có 3 mức kể từ dưới lên Nút

A là nút gốc chỉ toàn bộ mảng chứa vùng Mỗi con của A là một góc phần tư của vùng phân chia, và được gán nhãn lần lượt là NW, NE, SW, SE Các nút lá chỉ các khối của vùng phân chia, nút có màu đen/ trắng là nút thuộc/không thuộc vùng Nút khác lá chỉ vùng được phân chia tiếp và có màu xám

Hình 1.12 Cây tứ phân lưu trữ đối tượng vùng

Cây tứ phân cũng được dùng để lưu trữ đối tượng điểm Trong hình 1.13 là một dạng cây sử dụng để quản lý các đối tượng kiểu điểm, trong đó các điểm

nên rời rạc gọi là cây tứ phân PR (Point Region Quadtree)

Trang 26

Hình 1.13 Cây tứ phân PR

Với ví dụ trong Hình 1.13, không gian A được chia thành 4 phần: phần góc trái trên không có đối tượng cần quản lý nên bỏ qua, phần góc phải trên có 2 đối tượng nên chia tiếp và thu được 2 đối tượng Làm tương tự với các phần góc còn lại cho đến khi đưa hết các đối tượng vào cây

Hạn chế của cây tứ phân PR nói riêng và cây tứ phân nói chung chính là mức độ phân rã của không gian phụ thuộc vào sự phân chia nhỏ nhất giữa 2 điểm, có nghĩa nếu 2 điểm càng gần nhau thì mức phân rã càng sâu Ưu điểm của cây tứ phân PR cho phép tìm kiếm theo một giới hạn nào đó về khoảng cách một cách nhanh chóng Khi đó, từ nút gốc người ta sẽ hạn chế việc duyệt các nhánh có tọa độ vượt quá mức yêu cầu

Đối với các câu truy vấn không gian có dạng dựa trên vị trí

(location-based) như tìm theo đặc tính tự nhiên kết hợp với một vị trí cụ thể hoặc vị trí

ước lượng xấp xỉ thì cây tứ phân dễ dàng đưa ra câu trả lời Ví dụ các câu hỏi như: Vị trí X có đặc điểm gì? Có cái gì ở gần đường nhất tại vị trí X?

Ý tưởng của cây tứ phân cũng được sử dụng để xây dựng cây lưu trữ cho các dữ liệu trong không gian 3 chiều Cây tứ phân trong không gian 3 chiều

được gọi là cây Octree Đó là, chia không gian thành các khối hình lập phương

để thu các đối tượng cần quản lý, việc chia này sẽ lặp đi lặp lại cho đến khi tất

cả các đối tượng trong không gian đó đều được lưu trên cây

Trang 27

1.4.4.2.Cây R – tree

Cây R-tree là cây có cấu trúc giống cây B+-tree, được dùng để lưu các hình

chữ nhật đa chiều như các đối tượng mà không thực hiện các phép cắt (clipping) hay chuyển đổi (transforming) chúng thành các điểm ở chiều cao hơn

Cấu trúc này sử dụng hình chữ nhật nhỏ nhất để bao quanh lần lượt các đối tượng cần quản lý, hay bao quanh khối dữ liệu Khi đó mỗi nút trên cây là một hình chữ nhật nhỏ hơn mà bao quanh các nút con của nó Nếu một đối tượng thuộc về nhiều nút thì đối tượng đó chỉ được lưu trữ tại một nút Tất cả các lá đều phải cùng một mức, khi đó việc tìm kiếm một đối tượng bất kỳ là như nhau

Lưu ý các nút khác lá gồm một số thành phần (entry) theo khuôn dạng (cp,

Rectangle) có nghĩa cp là địa chỉ nút con trong cây và Rectangle là hình chữ

nhật nhỏ nhất bao quanh tất cả các thành phần của nút con đó

Hình 1.14 Biểu diễn cây R-tree

Trong Hình 1.14, mỗi nút lá là (R, O id ) có nghĩa R là hình chữ nhật nhỏ

sở dữ liệu, ví dụ (R4, g) Mỗi nút khác lá (R, P) có nghĩa R là hình chữ nhật nhỏ nhất chứa tất cả các hình chữ nhật con khác Nếu cho M là số thành phần tối đa trong một nút và m là một tham số xác định số thành phần tối thiểu của nút đó

xuất khoảng 40% các đối tượng trong không gian

Thuộc tính của một cây R-tree là: (1) Nút gốc phải có tối thiểu 2 con trừ

khi nó là lá (2) Mọi nút khác lá có từ m đến M con trừ khi nó là gốc (3) Mọi nút

Trang 28

là chứa từ m đến M thành phần trừ khi nó là gốc (4) Mọi nút lá phải ở cùng một

mức

Cây R-tree không phải là duy nhất, số lượng hình chữ nhật phụ thuộc vào

số đối tượng được thêm vào hay xóa đi trong cây Với cách lưu trữ này, việc tìm kiếm một vài đối tượng nào đó sẽ phải duyệt nhiều hình chữ nhật và thậm chí là duyệt cả cây Do đó, đây chưa phải là cấu trúc lưu trữ tối ưu

Trong các ứng dụng không gian truyền thống, cây R-tree được sử dụng rộng rãi để đánh chỉ số dữ liệu tại nhiều vùng khác nhau Ví dụ trong hệ thống ngân hàng có lưu trữ lịch sử thay đổi số dư tài khoản sau mỗi lần giao dịch Với

dữ liệu lịch sử này, người ta có thể thực hiện truy vấn về số dư của tài khoản tại các thời điểm khác nhau, chẳng hạn như tìm các tài khoản có số dư trên 5 đô la trong suốt tháng 5 hoặc tháng 6 Có thể sử dụng cây R-tree để biểu diễn số dư tài khoản đó theo thời gian Sau đó tìm trên cây thời điểm tháng 5 hoặc 6 mà số dư các tài khoản đó thỏa mãn yêu cầu trên Tuy nhiên, nếu tồn tại tài khoản không thay đổi số dư trong thời gian gian thì việc tìm kiếm trên cây sẽ mất thời gian hơn tài khoản hay thay đổi số dư Điều đó cho thấy cây R-tree không thích hợp

để xử lý các tình huống này

Cây R+-tree dùng các hình chữ nhật không giao nhau (dis-joint) để chia

không gian và mỗi đối tượng có thể lưu trữ nhiều lần trong cây Do đó, việc tìm kiếm một đối tượng nào đó phải thực hiện nhanh hơn đặc biệt là các đối tượng lớn có mối quan hệ với nhau, tuy nhiên việc lưu trữ tốn bộ nhớ hơn

1.4.4.3 Cây R* - tree

Cây R*-tree là một biến thể nổi tiếng của R-tree Đây là cấu trúc cây hoàn toàn động, bởi lẽ việc thêm và xóa trên cây có thể trộn lẫn với truy vấn, không đòi hỏi quá trình tổ chức lại toàn bộ cây theo chu kỳ

Cây R*-tree được sử dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là cơ sở

dữ liệu không gian giới thiệu mô hình chi phí là một khái niệm mới về các hàm

hồi quy phạm vi ERF (Extent Regression Function) giúp R*-tree thực hiện tốt

trên dữ liệu có quy mô, kích thước bất kỳ mà độc lập với lĩnh vực ứng dụng

Trang 29

ERF cung cấp nhận thức đáng kể về R*-tree và là nền tảng phát triển một kỹ thuật tối ưu mới Các thuật toán trên cây R*-tree có xem xét đến giá trị các tham

số vùng (area), đường biên (margin) cũng như thao tác phủ trong khả năng kết

hợp các vùng hình chữ nhật chia không gian khác nhau Ví dụ trong hình mô tả các khả năng kết hợp của 2 vùng để chia không gian theo trục giá trị x, sau khi

đã sắp xếp các đối tượng có giá trị trên trục x tăng dần

Hình 1.15 Các khả năng nhóm hình chữ nhật trong R*-tree

Với phần phủ trong Hình 1.15 (a), 1.15 (b) và 1.15 (c) tương ứng với trường hợp chọn hình chữ nhật bên trái bao quanh lần lượt 3, 4, 5 đối tượng và hình chữ nhật bên phải bao 5, 4, 3 đối tượng còn lại, ta thấy ở trường hợp (a) cho phần phủ nhỏ nhất, nên R*-tree chọn chia không gian theo cách này

Cây R*-tree được đánh giá là hiệu quả nhất vì cải tiến vượt bậc thuật toán chia không gian các đối tượng Nó giúp quá trình tối ưu hóa các vùng chồng xếp

và bao phủ trong không gian thư mục các hình chữ nhật (directory rectangle)

được tốt hơn so với R-tree Trong đó, khái niệm thư mục hình chữ nhật mô tả việc địa lý hóa hình chữ nhật bao quanh nhỏ nhất của các hình chữ nhật mức dưới

R*-tree kết hợp việc duyệt thuật toán chia nút và khái niệm cố chèn lại nút (đã xóa trước đó) kể cả khi vượt quá số thành phần lưu trữ tối đa Ý tưởng cải tiến này dựa trên quan sát cây R-tree cho thấy cây R-tree chịu ảnh hưởng nhiều bởi trật tự các đối tượng chèn vào cây Việc xóa và chèn lại các đối tượng trên R*-tree cho phép tìm được vị trí thích hợp và tối ưu hơn so với vị trí ban đầu có đưa ra kết quả thử nghiệm rằng tùy loại truy vấn mà tốc độ cải thiện từ 20% đến 50% sau khi xóa rồi chèn lại đối tượng vào cây Để việc tổ chức cấu trúc hoàn toàn động, R*-tree cố gắng cho các thành phần được chèn trở lại cây trong suốt

Trang 30

quá trình, bằng cách xem xét khả năng chèn các thành phần để tìm được vị trí thích hợp tại mỗi mức của cây Tại mỗi bước, thuật toán sẽ kiểm tra vấn đề tràn cây trước tiên vì đây là nguyên nhân dẫn đến việc chia lại không gian cho biết

chi phí tính toán (cpu cost) cao hơn tuy nhiên số lần truy cập bộ nhớ ngoài giảm

đáng kể chỉ còn 4% Đây là thuật toán có mức truy cập thấp nhất trong số các biến thể của R-tree và là điểm nổi bật của việc cải tiến cấu trúc cũng như thuật toán xử lý trên cây R*-tree

Cây R*-tree xử lý tốt nhiều loại truy vấn và thao tác (ví dụ tính vùng phủ

bản đồ hay còn gọi lại phép kết nối không gian – spatial join) trên dữ liệu không

gian kiểu hình khối chữ nhật cũng như các điểm trong không gian nhiều chiều

Giống như cây tứ phân, thuật toán tiến hành việc chia đệ quy không gian

thành các vùng nhỏ hơn bằng việc dùng mặt phẳng trục tọa độ (iso-oriented

hyperplanes) Ví dụ, với không gian 2 chiều dùng đường thẳng để chia, với

không gian 3 chiều thì dùng mặt phẳng Tất cả các nút trên cây đều là các điểm trong không gian k chiều Tại các nút khác lá sinh ra một phép chia không gian thành 2 vùng, vùng không gian bên trái lưu tại cây con trái nếu giá trị nhỏ hơn giá trị của đường chia và vùng không gian bên phải lưu tại cây con phải nếu giá trị lớn hơn

Điểm khác biệt với cây tứ phân đó là vị trí chia ở đây chính là tại các tọa độ chứa điểm cần lưu trữ Có thể nói, cây k-d-tree là cây tìm kiếm nhị phân với đặc điểm là tại mỗi độ sâu của cây thì một chiều khác được lựa chọn để thực hiện

việc chia không gian và ký tự “k” cho biết số chiều không gian được biểu diễn

Ví dụ, trong cây k-d-tree 2 chiều thì trục x được dùng để chia tại mức lẻ và trục

y chia tại mức chẵn

Trang 31

Hình 1.16 là một không gian 2 chiều gồm 6 điểm cần lưu trữ Tại mức 1 thực hiện phép chia bằng đường trục x tại điểm (7, 2) Tại mức 2 thực hiện phép chia trên vùng không gian trái, phải theo đường trục y lần lượt tại điểm (5, 4) và (9,6) Tại mức 3 chia 2 vùng không gian trên theo trục x tại (2,3) và (4,7) lần lượt là nút con trái và phải của điểm (5, 4); (8,1) là nút con trái của điểm (9,6)

Hình 1.16 Cây k-d-tree 2 chiều

Việc thêm một điểm vào không gian hoặc tìm kiếm một điểm bất kỳ được thực hiện dễ dàng, tuy nhiên việc xóa đi một điểm có thể khiến cây con bên dưới điểm vừa xóa được xây dựng lại Chính vì các điểm đều được lưu trên mọi nút của cây đã dẫn đến nhược điểm hạn chế thao tác xóa dữ liệu điểm trong không gian

Hiện nay, nhiều nghiên cứu đã đề xuất các dạng khác nhau của k-d tree như cây k-d tương thích cho phép chia không gian thành 2 vùng bằng nhau tại mỗi lần chia kể cả vùng chia không chứa dữ liệu; cây k-d-B-tree kết hợp đặc tính của k-d-tree và B-tree trong đó mọi điểm được lưu tại lá, còn nút khác lá lưu thông tin mô tả cây con của lần chia hiện tại dẫn đến tiết kiệm bộ nhớ khi lưu trữ;… Nhiều tài liệu phân chia các cấu trúc dữ liệu theo đối tượng không gian (điểm, đường, vùng, …) Ví dụ với đối tượng vùng có sử dụng cấu trúc cây tứ phân, Quad-CIF-tree, R-tree, R+-tree, skd-tree, skd-tree mở rộng, PM-tree, PMR- tree, …; với đối tượng điểm sử dụng cây tứ phân, PR-tree, MX-PR-tree, X-tree, … Các cấu trúc này được phân chia theo hướng đối tượng Ngoài ra có

Trang 32

một số loại cấu trúc dữ liệu khác lại phân loại theo hướng không gian như grid

file, cây tứ phân, cây tứ phân tuyến tính, cây trật tự z, …

1.5 Cấu trúc dữ liệu bản đồ véc tơ

1.5.1 Khái niệm

Các đối tượng không gian khi biểu diễn ở cấu trúc dữ liệu vector được tổ chức dưới dạng điểm (point), đường (line) và vùng (polygon), và được biểu diễn trên một hệ thống tọa độ nào đó Đối với các đối tượng biểu diễn trên mặt phẳng, mỗi đối tượng điểm được biểu diễn bởi một cặp tọa độ (x, y); đối tượng đường được xác định bởi một chuỗi liên tiếp các điểm (vertex), đoạn thẳng được nối giữa các điểm (vertex) hay còn gọi là cạnh (segment), điểm bắt đầu và điểm kết thúc của một đường gọi là các nút (node); đối tượng vùng được xác định bởi

các đường khép kín

1.5.2.Kiểu đối tượng điểm (Points)

Điểm được xác định bởi cặp giá trị điểm Các đối tượng đơn, thông tin về địa lý chỉ gồm cơ sở vị trí sẽ được phản ánh là đối tượng điểm Các đối tượng kiểu điểm có đặc điểm:

+Là toạ độ đơn (x,y)

+Không cần thể hiện chiều dài và diện tích

Hình 1.17 Số liệu vector được biểu thị dưới dạng điểm (Point)

Tỷ lệ trên bản đồ tỷ lệ lớn, đối tượng thể hiện dưới dạng vùng Tuy nhiên trên bản đồ tỷ lệ nhỏ, đối tượng này có thể thể hiện dưới dạng một điểm Vì vậy, các đối tượng điểm và vùng có thể được dùng phản ánh lẫn nhau

Trang 33

1.5.3 Kiểu đối tượng đường (Arcs)

Đường được xác định như một tập hợp dãy của các điểm Mô tả các đối tượng địa lý dạng tuyến, có các đặc điểm sau:

+ Là một dãy các cặp toạ độ

+ Một arc bắt đầu và kết thúc bởi node

+ Các arc nối với nhau và cắt nhau tại node

+ Hình dạng của arc được định nghĩa bởi các điểm vertices

+ Độ dài chính xác bằng các cặp toạ độ

Hình 1.18 Số liệu vector được biểu thị dưới dạng Arc 1.5.4.Kiểu đối tượng vùng (Polygons)

Vùng được xác định bởi ranh giới các đường thẳng Các đối tượng địa lý

có diện tích và đóng kín bởi một đường được gọi là đối tượng vùng polygons, có các đặc điểm sau:

Polygons được mô tả bằng tập các đường (arcs) và điểm nhãn (label points)

Một hoặc nhiều arc định nghĩa đường bao của vùng

Một điểm nhãn label points nằm trong vùng để mô tả, xác định cho mỗi một vùng

Trang 34

Hình 1.19 Số liệu vector được biểu thị dưới dạng vùng (Polygon) 1.5.5 Cấu trúc dữ liệu véctơ

Dữ liệu ở dạng véc tơ được tổ chức ở hai mô hình: Mô hình Spaghetti và

mô hình quan hệ không gian Topology

1.5.5.1 Cấu trúc Spaghetti

Trong cấu trúc dữ liệu Spaghetti, đơn vị cơ sở là các cặp tọa độ trên một không gian địa lý xác định Do đó, mỗi đối tượng điểm được xác định bằng một cặp tọa độ (x, y); mỗi đối tượng đường được biểu diễn bằng một chuỗi những cặp tọa độ (xi, yi); mỗi đối tượng vùng được biểu diễn bằng một chuỗi những cặp toạ độ (xj, yj) với điểm đầu và điểm cuối trùng nhau

Trang 35

Vùng a (xA, yA), (xa1, ya1), …, (xa5, ya5) , (xB, yB), (xA, yA)

Vùng b (xA, yA), (xb1, yb1), (xb2, yb2), (xb3, yb3) , (xB, yB), (xA, yA)

Bảng mô tả đặc trưng của cấu trúc Spaghetti

Đặc điểm: Cấu trúc Spaghetti không ghi nhận đặc trưng kề nhau của hai vùng kề nhau, nghĩa là tại hai vùng kề nhau sẽ có hai cạnh chung kề nhau, cạnh chung của hai vùng kề nhau là hai cạnh độc lập nhau Ở thí dụ trên vùng a và vùng b có chung cạnh AB

1.5.5.2 Cấu trúc Topology

Dữ liệu topology được xây dựng tu các đối tượng hình học cơ bản và chúng có mối quan hệ với nhau Mức độ quan hệ tùy thuộc vào cấp topology Một vấn đề khó khăn khi xây dựng các ứng dụng dựa trên dữ liệu topology là nguồn dữ liệu topology không có sẵn Muốn có dữ liệu topology chúng ta phải chuyển từ dữ liệu hình học cơ bản thành dữ liệu topology và các phương pháp hay công cụ chuyển đổi còn ít được hổ trợ

Hình 1.21 Các đối tượng trong mô hình Topology 1.6 Kỹ thuật tiếp cận trong phân cụm dữ liệu

Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các phương pháp Unsupervised Learning trong Machine Learning Có rất nhiều định nghĩa khác nhau về kỹ thuật này, nhưng về bản chất ta có thể hiểu phân cụm là các qui trình tìm cách nhóm các đối tượng đã cho vào các cụm (clusters),

Trang 36

sao cho các đối tượng trong cùng 1 cụm tương tự (similar) nhau và các đối

tượng khác cụm thì không tương tự (Dissimilar) nhau

Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu Các thuật toán phân cụm (Clustering Algorithms) đều sinh ra các cụm (clusters) Tuy nhiên, không có tiêu chí nào là được xem là tốt nhất để đánh hiệu của của phân tích phân cụm, điều này phụ thuộc vào mục đích của phân cụm như: data reduction, “natural clusters”, “useful” clusters, outlier detection

Kỹ thuật phân cụm có thể áp dụng trong rất nhiều lĩnh vực như:

+ Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn;

+ Biology: Phận nhóm động vật và thực vật dựa vào các thuộc tính của chúng;

+ Libraries: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…;

+ Insurance, Finance: Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds);

+ WWW: Phân loại tài liệu (document classification); phân loại người dùng web (clustering weblog);…

Trang 37

CHƯƠNG 2 - CÁC THUẬT TOÁN PHÂN CỤM DỮ LIỆU

2.1 Giới thiệu về phân cụm dữ liệu bản đồ véctơ

Từ góc độ thực tế, phân cụm (clustering) là một việc làm diễn ra tự nhiên

và được thực hiện thường xuyên Ví dụ như phân loại sinh viên theo học lực khá, giỏi, …; phân loại đất đai theo chất lượng đất; phân loại các trạm rút tiền theo tiêu chí gần một vị trí cụ thể nào đó, … Việc phân cụm chính là quá trình thực hiện gom các đối tượng có cùng tính chất hay có các tính chất gần giống nhau thành nhóm

Tiền thân của các kỹ thuật phân cụm dữ liệu trong khai phá dữ liệu xuất phát từ lĩnh vực toán học thống kê và phân tích số Trong lĩnh vực máy học, phân cụm dùng để tìm mẫu ẩn trong đó sử dụng kỹ thuật tìm kiếm nhóm bằng việc học không giám sát (unsupervised) và hệ thống trả về kết quả biểu diễn dưới dạng dữ liệu khái niệm Phân cụm dữ liệu khác với phân loại (classification) ở chỗ phân loại cho biết trước số lượng lớp các đối tượng và giá trị nhãn của các lớp Phân loại là phương pháp học có giám sát (supervised)

2.1.1.Phân cụm dữ liệu và một số khái niệm liên quan

Phân cụm (clustering) là việc chia tập dữ liệu bao gồm đối tượng thực thể hay trừu tượng thành nhóm các đối tượng tương tự Một nhóm là một tập hợp các đối tượng mà các phần tử của nó tương tự nhau trong cùng một cụm và không tương tự với các đối tượng trong nhóm khác Một nhóm các đối tượng dữ liệu có thể xem là một cụm trong nhiều ứng dụng Việc biểu diễn dữ liệu thuộc một vài nhóm cần thiết hơn so với việc hiển thị toàn bộ dữ liệu chi tiết

Thực tế cho thấy phân cụm dữ liệu là một phương pháp nổi bật trong các ứng dụng khai phá dữ liệu ở nhiều lĩnh vực như khai phá dữ liệu khoa học, trích rút thông tin và khai phá văn bản, nhận dạng mẫu, ứng dụng cơ sở dữ liệu không gian, xử lý ảnh, phân tích Web, maketing, quản lý quan hệ khách hàng (CRM – Customers Relationship Management), Cụ thể, trong thương mại, những nhà phân tích thị trường sử dụng phân cụm để tìm ra những nhóm khách hàng riêng biệt và mô tả đặc điểm của từng nhóm khách hàng dựa trên những mẫu thu

Ngày đăng: 23/03/2021, 21:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w