Với lý do, ngoài nhu cầu lưu trữ và xử lý các kiểu dữ liệu thông thường như kiểu chuỗi, kiểu số, kiểu ngày tháng, … người sử dụng còn có thêm nhu cầu lưu trữ và xử lý dữ liệu không gian
Trang 1KHỔNG MINH TỰ
NGHIÊN CỨU, TÌM HIỂU MỘT SỐ THUẬT TOÁN CƠ BẢN VỀ PHÂN NHÓM DỮ LIỆU
TRÊN CƠ SỞ DỮ LIỆU KHÔNG GIAN
LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ
THÁI NGUYÊN - 2014
Trang 2
KHỔNG MINH TỰ
NGHIÊN CỨU, TÌM HIỂU MỘT SỐ THUẬT TOÁN CƠ BẢN VỀ PHÂN NHÓM DỮ LIỆU
TRÊN CƠ SỞ DỮ LIỆU KHÔNG GIAN
Chuyên ngành: KỸ THUẬT ĐIỆN TỬ
Mã số: 60 52 02 03
LUẬN VĂN THẠC SĨ KỸ THUẬT
PHÕNG QUẢN LÝ ĐÀO TẠO
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, các số liệu, kết quả nêu trong luận văn này là trung thực và là công trình nghiên cứu của riêng tôi, luận văn này không giống hoàn toàn bất cứ luận văn hoặc các công trình đã có trước đó
Thái Nguyên, ngày 24 tháng 02 năm 2014
Tác giả luận văn
Khổng Minh Tự
Trang 4LỜI CẢM ƠN
Trong suốt quá trình học tập và tốt nghiệp, tôi đã nhận được sự giúp đỡ tận tình của các thầy cô trong Khoa Điện tử - Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên Tôi xin bày tỏ lòng biết ơn đối với các thầy cô giáo và Phòng Đào tạo sau đại học vì sự giúp đỡ tận tình này Tôi đặc biệt muốn cảm ơn
PGS.TS Lương Chi Mai đã tận tình giúp đỡ, hướng dẫn tôi trong thời gian thực
hiện đề tài, cảm ơn sự giúp đỡ của gia đình, bạn bè và các đồng nghiệp trong thời gian qua
Mặc dù đã cố gắng, song do điều kiện thời gian và kinh nghiệm thực tế còn nhiều hạn chế nên không thể tránh khỏi thiếu sót Vì vậy, tôi rất mong nhận được
sự đóng góp ý kiến của các thầy cô cũng như của các bạn bè, đồng nghiệp
Tôi xin chân thành cảm ơn!
Tác giả luận văn
Khổng Minh Tự
Trang 5LỜI NÓI ĐẦU
Trong thời đại bùng nổ Công nghệ thông tin, các công nghệ lưu trữ dữ liệu ngày càng phát triển nhanh chóng tạo điều kiện cho các đơn vị thu thập dữ liệu nhiều hơn và tốt hơn Đặc biệt trong lĩnh vực quản lý, kinh doanh, các doanh nghiệp
đã nhận thức được tầm quan trọng của việc nắm bắt và xử lí thông tin Tất cả lí do
đó khiến cho các cơ quan, đơn vị và các doanh nghiệp đã tạo ra một lượng dữ liệu khổng lồ cỡ Gigabyte thậm chí là Terabyte cho riêng mình Các kho dữ liệu ngày càng lớn và tiềm ẩn nhiều thông tin có ích Sự bùng nổ đó dẫn tới một yêu cầu cấp thiết là phải có những kĩ thuật và công cụ mới để biến kho dữ liệu khổng lồ kia thành những thông tin (tri thức) cô đọng và có ích
Tuy nhiên ngay cả khi đã có những công cụ phù hợp để lưu trữ và quản lý các dạng thông tin nói trên, thì để nhận được những thông tin có ích đối với dạng CSDL loại này, các biện pháp phân tích dữ liệu thông thường cũng gặp rất nhiều khó khăn, đôi khi là không thể giải quyết được Đó chính là cơ sở cho sự xuất hiện của kỹ thuật khai phá dữ liệu
Tác giả xin bày tỏ lòng biết ơn chân thành đến các thầy cô giáo, đặc biệt là cô giáo hướng dẫn: PGS.TS Lương Chi Mai đã tận tình giúp đỡ để hoàn thành luận văn này
Trong khuôn khổ giới hạn của luận văn cùng khả năng kiến thức và thời gian nghiên cứu còn hạn chế, nên mặc dù đã có nhiều cố gắng song luận văn chắc chắn không tránh khỏi những thiếu sót Tác giả mong nhận được sự đóng góp ý kiến của các thầy giáo, cô giáo để đề tài được hoàn thiện hơn
Xin trân trọng cảm ơn!
HỌC VIÊN
Khổng Minh Tự
Trang 6MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
LỜI NÓI ĐẦU iii
MỤC LỤC iv
BẢNG THUẬT NGỮ VIẾT TẮT vii
DANH MỤC CÁC HÌNH viii
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ KHAI PHÁ TRI THỨC VÀ CƠ SỞ DỮ LIỆU KHÔNG GIAN 6
1.1 Khai phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases - DD) 6
1.1.1 Sự ra đời của khai phá tri thức trong cơ sở dữ liệu 6
1.1.2 Khái niệm khai phá dữ liệu 7
1.1.3 Quá trình khai phá tri thức trong cơ sở dữ liệu 7
1.1.4 Các nhiệm vụ của khai phá dữ liệu 8
1.2 Phân nhóm (Clustering) và các cách tiếp cận chính 9
1.2.1 Phân nhóm và các ứng dụng 9
1.2.2 Các cách tiếp cận chính 11
1.3 Hệ quản trị cơ sở dữ liệu không gian 16
1.3.1 Cơ sở dữ liệu không gian 16
1.3.2 Hệ quản trị cơ sở dữ liệu không gian 17
1.3.3 Phương pháp truy nhập không gian 18
1.4 Kết luận 20
Chương 2 CÁC CÁCH TIẾP CẬN CỦA KỸ THUẬT PHÂN NHÓM 21
2.1 Thuật toán DBSCAN 21
2.1.1 Các định nghĩa và bổ đề được sử dụng trong thuật toán DBSCAN 22
Trang 72.2 Thuật toán DBCLASD 27
2.2.1 Một số định nghĩa 27
2.2.2 Thuật toán DBCLASD 30
2.3 Thuật toán DENCLUE 34
2.3.1 Một số định nghĩa 35
2.3.2 Những tính chất của phương pháp DENCLUE 37
2.3.3 Thuật toán DENCLUE 38
2.4 Kết luận 43
Chương 3 CÁC GIẢI THUẬT PHÂN NHÓM TRÊN CƠ SỞ DỮ LIỆU KHÔNG GIAN LỚN 44
3.1 Một số khái niệm cần thiết khi tiếp cận phân nhóm dữ liệu 44
3.1.1 Phân loại các kiểu dữ liệu 44
3.1.2 Độ đo tương tự và phi tương tự 45
3.2 Thuật toán K-MEANS 49
3.3 Giải thuật DBSCAN 53
3.4 Kết luận 55
Chương 4 XÁC ĐỊNH THAM SỐ, CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 56
4.1 Môi trường thử nghiệm 56
4.2 Công cụ thử nghiệm 56
4.3 Xác định tham số 56
4.3.1 Xác định tham số cho thuật toán DBSCAN 56
4.3.2 Tối ưu hoá việc lựa chọn các tham số và cho thuật toán DENCLUE 62
4.4 Cài đặt thử nghiệm và đánh giá kết quả 63
4.4.1 Xây dựng chương trình cài đặt thuật toán phân nhóm 63
4.4.2 Tạo lập dữ liệu 64
4.4.3 Cài đặt thuật toán phân nhóm 65
4.4.4 Lưu trữ và hiển thị kết quả 73
4.5 Đánh giá kết quả trên một số tập dữ liệu 74
Trang 84.5.1 Tập dữ liệu 74
4.5.2 Đánh giá kết quả 75
4.5.3 Nhận xét 79
4.6 Kết luận 81
KẾT LUẬN 82
TÀI LIỆU THAM KHẢO 84
Trang 9BẢNG THUẬT NGỮ VIẾT TẮT
Khai phá tri thức trong cơ sở dữ liệu KDD Knowledge Discovery in Databases
Trang 10DANH MỤC CÁC HÌNH
Hình 1.1: Các bước trong quá trình khám phá tri thức KDD 8
Hình 1.2: Biểu đồ Hertzsprung-Russell 10
Hình 1.3: Mô tả cách phân nhóm theo phương pháp từ dưới lên và từ trên xuống 14
Hình 1.4: Những điểm nằm trong miền tô sẫm mới được xét đến khi tìm điểm gần nhất cho điểm x Những điểm ngoài miền không cần xét đến 17
Hình 1.5: Một cách chia lưới Những ô mầu sẫm là những ô chứa dữ liệu và được lưu trữ Những ô màu trắng là những ô không chứa dữ liệu 19
Hình 1.6: Mô phỏng một R*-tree gồm 3 mức 20
Hình 2.1: Lân cận của P với ngưỡng Eps 22
Hình 2.2: Mật độ - đến được trực tiếp 23
Hình 2.3: Mật độ đến được 23
Hình 2.4: Mật độ liên thông 24
Hình 2.5: Nhóm và nhiễu 24
Hình 2.6: Mô phỏng thuật toán DBSCAN 25
Hình 2.7: Thủ tục ExpandCluster 26
Hình 2.8: Ví dụ dữ liệu tập các điểm được chia thành 2 lớp 27
Hình 2.9: Ảnh hưởng của độ rộng ô lưới đến việc xác định vùng xấp xỉ 29
Hình 2.11: Ví dụ một cách chia và đánh số trong không gian hai chiều 40
Hình 3.1: Minh họa số đo chiều rộng, chiều cao một đối tượng 46
Hình 3.2: Khoảng cách Euclidean 48
Hình 3.3: Các thiết lập để xác định ranh giới các nhóm ban đầu 49
Hình 3.4: Tính toán trọng tâm của các nhóm mới 50
Hình 3.5: Ví dụ các bước của thuật toán K-means 52
Hình 3.6: Một số hình dạng khám phá bởi phân nhóm dưa trên mật độ 54
Hình 3.7: Thuật toán DBSCAN 54
Trang 11Hình 4.2: Đồ thị khoảng cách với k = 4 Dựa vào đồ thị khoảng cách đó ta có
thể đưa ra được khoảng cách Eps một cách chính xác 57
Hình 4.3: Tập các dữ liệu được biểu diễn trong toạ độ 2 chiều 59
Hình 4.4: Đồ thị k-dist (k = 3) 59
Hình 4.5 60
Hình 4.6 60
Hình 4.7 60
Hình 4.8 61
Hình 4.9 Các tập dữ liệu với mật độ phân bố khác nhau giữa các lớp 61
Hình 4.10: Đồ thị mô tả sự phụ thuộc m( ) vào 62
Hình 4.11: Sơ đồ thực hiện chương trình 63
Hình 4.12: Tập dữ liệu lấy từ nguồn tài liệu 74
Hình 4.13: Tập dữ liệu lấy từ nguồn tài liệu 75
Hình 4.14: Tập dữ liệu lấy từ nguồn tài liệu 75
Hình 4.15: Tập dữ liệu ban đầu 75
Hình 4.16a 76
Hình 4.16 b 76
Hình 4.16 c 76
Hình 4.17 a 77
Hình 4 17 b 77
Hình 4.17 c 78
Hình 4.18 a 78
Hình 4.18 b 79
Trang 12MỞ ĐẦU
Trong vài thập kỷ gần đây, công nghệ thông tin có nhiều bước phát triển nhanh chóng và đã được ứng dụng rộng rãi trong mọi lĩnh vực, ngành nghề xã hội, đặc biệt là lĩnh vực quản lý – một lĩnh vực mà yếu tố công nghệ xử lý thông tin có tính chất quyết định Từ đó, theo quá trình hoạt động của các hệ thống quản lý dẫn đến sự bùng nổ thông tin, kích thước của các kho dữ liệu có kích thước tăng nhanh chóng theo từng năm, từng thời kỳ, làm cho những nhà (lãnh đạo) quản lý rơi vào tình trạng “ngập lụt thông tin” Kích thước dữ liệu tăng quá nhanh dẫn tới các phương pháp phân tích dữ liệu truyền thống không còn có thể đáp ứng được nữa Vì vậy, các chuyên gia công nghệ thông tin cho rằng hiện nay chúng ta đang sống trong một xã hội mà “rất giàu thông tin nhưng nghèo tri thức” Trước hiện trạng đó, đòi hỏi phải phát triển các phương pháp khai phá, phát hiện ra những tri thức có ích tiềm ẩn trong các kho dữ liệu khổng lồ kia để phục vụ tốt hơn cho công việc quyết định của các nhà quản lý
Sự ra đời của lĩnh vực khai phá dữ liệu đã mở ra nhiều hướng nghiên cứu mới thu hút sự quan tâm chú ý của nhiều nhà nghiên cứu thuộc nhiều lĩnh vực khác nhau Đồng thời, dựa trên các kỹ thuật đưa ra trong lĩnh vực này rất nhiều các ứng dụng đã được xây dựng tạo ra được nhiều hệ thống trợ giúp đắc lực cho cuộc sống con người
Khai phá dữ liệu (Data Mining) là một lĩnh vực khoa học liên ngành mới xuất hiện gần đây nhằm đáp ứng nhu cầu này Các kết quả nghiên cứu cùng với những ứng dụng thành công trong khai phá dữ liệu, khám phá tri thức cho thấy khai phá dữ liệu là một lĩnh vực khoa học tiềm năng, mang lại nhiều lợi ích, đồng thời có
ưu thế hơn hẳn so với các công cụ phân tích dữ liệu truyền thống
Một trong các kỹ thuật khai phá dữ liệu đang được quan tâm nghiên cứu đó
là kỹ thuật phân nhóm (clustering) Thật vậy, trong một vài thập kỷ qua, phân nhóm
Trang 13được sử dụng rộng rãi trong các lĩnh vực như nhận dạng (pattern recognition), phân tích dữ liệu (data analysis) và xử lý ảnh (image processing) Hiện nay, phân nhóm
dữ liệu là một hướng được nghiên cứu rất nhiều trong Tin học Tuy nhiên, các giải thuật phân nhóm được biết trước đây có một số hạn chế khi áp dụng vào các cơ sở
dữ liệu không gian lớn [10]
1 Tính cấp thiết của đề tài
Dữ liệu không gian?
Với lý do, ngoài nhu cầu lưu trữ và xử lý các kiểu dữ liệu thông thường như kiểu chuỗi, kiểu số, kiểu ngày tháng, … người sử dụng còn có thêm nhu cầu lưu trữ
và xử lý dữ liệu không gian để lưu trữ các đối tượng như Point, Line, Polugon, …
Và từ đó, một mô hình cơ sở dữ liệu được quan tâm nhất hiện nay chính là mô hình
cơ sở dữ liệu không gian (SDB – Spatial Database) được sử dụng cho xử lý và lưu trữ dữ liệu không gian, chẳng hạn như dữ liệu bản đồ, dữ liệu, dữ liệu của lĩnh vực khí tượng thuỷ văn, quân sự, multimedia, … và đặc biệt là trong lĩnh vực viễn thông Thuật ngữ dữ liệu không gian (spatial data) được sử dụng theo nghĩa rộng, bao gồm các phần tử dữ liệu (bản ghi) mô tả cho mỗi đối tượng mà trong đó bao hàm 2 thành phần: thành phần thông tin về không gian (vị trí địa lý, vùng, toạ độ,
… ) và thành phần còn lại là các thuộc tính khác của đối tượng Mối quan hệ giữa thuộc tính không gian và thuộc tính phi không gian liên kết rất chặt chẽ và có thể dựa vào thuộc tính chất không gian để đưa ra được thuộc tính phi không gian và ngược lại Ví dụ như dựa vào tính chất về tỷ lệ người thất nghiệp của một điểm dữ liệu, chúng ta có thể đưa ra được dự đoán về vị trí của điểm đó (trung tâm thành phố, nông thôn, miền núi, …) Hoặc dựa vào vị trí của điểm đó với các điểm trung tâm thành phố, chúng ta có thể đưa ra được tỷ lệ thất nghiệp với một mức độ chính xác nhất định Một ví dụ khác là mức độ mưa giữa các vùng, miền trên lãnh thổ (lĩnh vực khí tượng) cũng được lưu trữ trong cơ sở dữ liệu sau nhiều năm như một kho dữ liệu không gian
Trang 14Dữ liệu không gian trong lĩnh vực điện tử, truyền thông?
Trong hoạt động quản lý của các nhà cung cấp dịch vụ viễn thông, kích thước kho dữ liệu lưu trữ về các cuộc thoại di động tăng nhanh đáng kể Dữ liệu mô
tả cho các cuộc đàm thoại này cũng mang tính chất của dữ liệu không gian Thuộc tính không gian của nó có thể là tỉnh, vùng, cell, … và thuộc tính phi không gian có thể bao gồm: thời điểm của cuộc thoại, thời gian đàm thoại, thuê bao, … Với kho
dữ liệu khổng lồ được lưu trữ về các cuộc thoại, một vấn đề đặt ra là liệu có tri thức nào để trả lời cho những câu hỏi dạng như:
- Mối quan hệ giữa vùng và thời gian của các cuộc thoại?
- Mối quan hệ của các cuộc đàm thoại giờ thấp điểm và thời gian đàm thoại?
- Vùng của các cuộc thoại có tỉ lệ diễn ra nhiều?
- …
Khai phá dữ liệu không gian
Để có thể trích rút các tri thức có ích như trình bày ở trên là một vấn đề quan trọng được nhiều nhà lãnh đạo quản lý quan tâm Nó có thể giúp cho các nhà lãnh đạo
ra các quyết định đúng đắn hơn trong chiến lược đầu tư, phát triển và điều phối hay vận hành hệ thống mạng viễn thông một cách hiệu quả
Chính vì lý do đó mà em chọn đề tài “Nghiên cứu, tìm hiểu một số thuật toán
cơ bản về phân nhóm dữ liệu trên Cơ sở dữ liệu không gian” làm hướng nghiên cứu chính cho luận văn của mình
2 Mục tiêu đề tài
Mục tiêu trọng tâm của đề tài là:
- Nghiên cứu một số thuật toán phân nhóm dữ liệu trên cơ sở dữ liệu không gian
- Cài đặt thử nghiệm trên một số mẫu dữ liệu không gian (dựa trên tập dữ liệu trong các tài liệu tham khảo)
- Đưa ra bảng so sánh giữa các thuật toán
- Tìm cách xây dựng các tham số cho các thuật toán
Trang 15- Các kỹ thuật thu thập và lưu trữ dữ liệu;
- Các phương pháp phân nhóm dữ liệu;
- Tập trung nghiên cứu một số thuật toán phân nhóm cơ bản dựa vào mật độ phân bố của các đối tượng dữ liệu không gian
4 Ý nghĩa khoa học và thực tiễn của đề tài
a Ý nghĩa khoa học
Vào cuối thập kỷ 90, kỹ thuật khám phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database -KDD) được đưa ra nhằm tìm kiếm các thông tin, tri thức cần thiết, có giá trị tiềm ẩn trong một khối dữ liệu lớn và phức tạp như dữ liệu không gian, dữ liệu đa phương tiện, … Trong đó, giai đoạn khai phá dữ liệu là giai đoạn chính trong quá trình khai phá tri thức trong cơ sở dữ liệu Có rất nhiều phương pháp khai phá dữ liệu như phân lớp, phân nhóm, phát hiện luật kết hợp, … Mỗi phương pháp có những đặc điểm riêng phù hợp với một lớp các bài toán, các dạng dữ liệu và miền dữ liệu nhất định
Đối với dữ liệu không gian, phương pháp đang được quan tâm nghiên cứu là phương pháp phân nhóm (clustering) Đây là một bài toán quan trọng của lĩnh vực tìm kiếm tri thức trong cơ sở dữ liệu không gian lớn và phải được giải quyết trước tiên
Hiện nay nhiều nhà khoa học đã đưa ra nhiều giải thuật phân nhóm, tuy nhiên không cho ra kết quả tốt trong trường hợp kích thước dữ liệu lớn, có hình dạng phức tạp và có cả nhiễu
b Ý nghĩa thực tiễn
Kết quả nghiên cứu là tìm hiểu và đưa ra một số thuật toán phân nhóm có hiệu quả trên dữ liệu không gian, đặc biệt trong trường hợp dữ liệu lớn, bị nhiễu, đa chiều Kết quả so sánh giữa các thuật toán cho thấy tính hiệu quả của mỗi thuật toán trên những đối tượng dữ liệu khác nhau Trong lĩnh vực viễn thông, là lĩnh vực phát triển mạnh mẽ và lượng thông tin trao đổi cực lớn, dữ liệu lưu trữ đồ sộ Giải quyết được bài toán phân nhóm dữ liệu không gian là giải quyết được bài toán lớn trong việc hỗ trợ quyết định của nhiều lĩnh vực quản lý, đặc biệt là trong lĩnh vực viễn thông Cho
Trang 16phép các nhà lãnh đạo quản lý có những chiến lược đúng đắn, kịp thời trong việc điều hành các hoạt động của hệ thống như đầu tư, vận hành, cũng cấp các dịch vụ, nâng cấp, biến đổi đơn vị mang tính cạnh tranh, …
5 Phương pháp nghiên cứu
Phương pháp tài liệu: Nghiên cứu các tài liệu (sách, báo, tạp chí khoa học, Internet, …) liên quan đến kỹ thuật phân nhóm dữ liệu trên CSDL không gian
Phương pháp thực nghiệm: Cài đặt thử nghiệm trên một số mẫu dữ liệu, từ
đó đưa ra đánh giá về tính hiệu quả của các thuật toán đó
6 Bố cục của luận văn
Ngoài các phần Mở đầu, Mục lục, Danh mục hình, Kết luận, Tài liệu tham khảo Nội dung chính của luận văn được trình bày trong 04 chương như sau:
Chương 1: Tổng quan về khai phá tri thức trong cơ sở dữ liệu không gian Chương 2: Các cách tiếp cận của kỹ thuật phân nhóm
Chương 3: Các giải thuật phân nhóm trên cơ sở dữ liệu không gian lớn Chương 4: Xác định tham số, cài đặt thử nghiệm và đánh giá kết quả
Trang 17Chương 1
TỔNG QUAN VỀ KHAI PHÁ TRI THỨC VÀ CƠ SỞ
DỮ LIỆU KHÔNG GIAN
1.1 Khai phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases - KDD)
1.1.1 Sự ra đời của khai phá tri thức trong cơ sở dữ liệu
Trong những năm gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin nói chung và trong các ngành công nghệ phần cứng, phần mềm, truyền thông và hệ thống các dữ liệu phục vụ trong các lĩnh vực kinh tế
xã hội nói riêng đã làm cho khả năng thu thập và lưu trữ thông tin của các hệ thống thông tin tăng nhanh một cách chóng mặt Bên cạnh đó việc tin học hóa một cách ồ
ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ Hàng triệu CSDL đã được sử dụng trong các hoạt động sản xuất, kinh doanh, quản lí…, trong
đó có nhiều CSDL cực lớn cỡ Gigabyte, thậm trí là Terabyte Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kỹ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích
Sự phát triển nhanh chóng của một lượng lớn dữ liệu được thu thập và lưu trữ trong các cơ sở dữ liệu lớn đã vượt ra ngoài khả năng của con người để có thể hiểu hết được chúng nếu không có những công cụ hỗ trợ tốt Kết quả là, dữ liệu thu thập được trong một lượng lớn cơ sở dữ liệu đã trở thành những đống dữ liệu mà ít khi được xem xét đến Do vậy, việc đưa ra những quyết định thường không dựa vào những thông tin hoặc dữ liệu thu thập được mà chỉ dựa vào nhận thức, suy đoán của người đưa ra quyết định, đơn giản là vì họ không có những công cụ giúp cho việc lấy ra những tri thức từ lượng lớn dữ liệu Tình huống này đã đặt chúng ta trong hoàn cảnh nhiều dữ liệu nhưng thiếu thông tin, thiếu tri thức Với một khối lượng lớn dữ liệu như vậy rõ ràng là các phương pháp thủ công truyền thống áp dụng để phân tích dữ liệu như chia bảng hoặc ngôn ngữ truy vấn ad-hoc đã không thể áp dụng được nữa Dẫn đến nhu cầu về một kỹ thuật mới có các đặc tính thông minh
Trang 18và khả năng tự động để hỗ trợ con người tìm kiếm thông tin hữu ích trong một núi
dữ liệu lộn xộn Kỹ thuật đó được gọi là khai phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database - KDD)
Khai phá tri thức trong cơ sở dữ liệu được định nghĩa bởi Fayyad như sau:
“Knowledge discovery in databases is the non-trivial process of identifying valid, novel, potentially, and ultimately understandable patterns in data” (Khai phá tri thức trong cơ sở dữ liệu là một quá trình không tầm thường của việc xác định các mẫu mới
lạ, có giá trị, có hiệu quả sử dụng và cơ bản hiểu được trong cơ sở dữ liệu) [4], [11]
1.1.2 Khái niệm khai phá dữ liệu
Khai phá dữ liệu (Data Mining) là một khái niệm ra đời vào những năm cuối của thập kỷ 1980 Nó là quá trình trích xuất các thông tin có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các CSDL, kho dữ liệu….Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật ngữ khác có ý nghĩa tương tự như: Khai phá tri thức từ CSDL, trích lọc dữ liệu, phân tích dữ liệu mẫu, khảo cổ dữ liệu, nạo vét dữ liệu Nhiều người coi Khai phá dữ liệu và một thuật ngữ thông dụng khác là Phát hiện tri thức trong CSDL (Knowledge Discovery
in Databases - KDD) là như nhau Tuy nhiên trên thực tế, khai phá dữ liệu chỉ là một bước thiết yếu trong quá trình Phát hiện tri thức trong CSDL Có thể nói Data Mining là giai đoạn quan trọng nhất trong tiến trình Phát hiện tri thức từ cơ sở dữ liệu, các tri thức này hỗ trợ trong việc ra quyết định trong khoa học và kinh doanh
1.1.3 Quá trình khai phá tri thức trong cơ sở dữ liệu
Quá trình khai phá tri thức trong cơ sở dữ liệu bao gồm các giai đoạn sau:
1 Trước tiên cần xác định và hiểu rõ được lĩnh vực ứng dụng và nhiệm vụ đặt ra là xác định các tri thức đã có và mục đích của người sử dụng
2 Tạo lập được một tập dữ liệu đích: Chọn lựa từ cơ sở dữ liệu một tập con
dữ liệu với các giá trị biến và các mẫu được quan tâm mà trên đó ta có thể thực hiện việc tìm kiếm, phát hiện tri thức
3 Làm sạch và tiền xử lý dữ liệu: Thực hiện các thao tác cơ bản như loại bỏ nhiễu hoặc loại bỏ các phần không cần thiết, bổ sung thêm các thông tin cần thiết
Trang 194 Thực hiện các phương pháp chuyển đổi để làm giảm bớt số chiều của dữ liệu để tập trung vào những thuộc tính chủ chốt đối với việc phát hiện tri thức
5 Khai phá dữ liệu: Quá trình áp dụng các giải thuật về tìm kiếm tri thức để đưa ra được những thông tin cần thiết và tiềm ẩn trong tập dữ liệu
6 Đánh giá, giải thích, thử lại các mẫu đã được khai phá, có thể lặp lại một hoặc nhiều bước kể trên để thu được các kết quả tốt hơn
7 Sử dụng các tri thức phát hiện được: Hợp nhất các tri thức thu được vào một
hệ thống làm việc, hoặc đưa ra các tài liệu về tri thức thu được từ dữ liệu về một vấn
đề quan tâm Giải quyết các xung đột tiềm tàng trong tri thức khai thác được
Hình 1.1: Các bước trong quá trình khám phá tri thức KDD
Khai phá dữ liệu (Data mining) chỉ là một bước trong quá trình khai phá tri thức trong cơ sở dữ liệu Tuy nhiên đây là giai đoạn đóng vai trò quan trọng nhất,
có ảnh hưởng rất lớn đến chất lượng cũng như hiệu quả của toàn bộ quá trình khai phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases - KDD)
1.1.4 Các nhiệm vụ của khai phá dữ liệu
Nhìn chung, mục đích chính của khai phá dữ liệu là dự đoán (prediction) và
mô tả (description) Dự đoán là việc sử dụng các biến hoặc các trường trong cơ sở
dữ liệu để đưa ra dự đoán về những giá trị chưa biết hoặc những giá trị chờ đợi trong tương lai Mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữ liệu mà con người có thể hiểu được
Để đạt được hai mục đích này, nhiệm vụ chính của khai phá dữ liệu gồm:
Trang 20Phân lớp (Classification), hồi quy (Regression), phân nhóm (Clustering), tóm tắt (Summarization), mô hình hoá phụ thuộc (Dependency modeling), phát hiện sự thay đổi và lạc hướng (Change and deviation detection)
Phân lớp là phân loại một mẫu dữ liệu vào một trong số các lớp đã xác định Hồi quy là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có giá trị thực (real -valued prediction variable) Phân nhóm là việc mô tả chung để tìm
ra tập xác định các nhóm hay các loại để mô tả dữ liệu Tổng kết liên quan đến các phương pháp tìm kiếm mô tả tóm tắt cho một tập con dữ liệu Mô hình hoá phụ thuộc bao gồm việc tìm kiếm một mô hình mô tả sự phụ thuộc đáng kể giữa các biến Phát hiện sự thay đổi và lạc hướng bao gồm khai thác những thay đổi đáng kể trong dữ liệu từ các giá trị chuẩn hoặc được đo trước đó.[3]
Trong các phương pháp trên, phân nhóm được sử dụng rộng rãi nhất và đôi khi được coi là tiền xử lý dữ liệu cho những phương pháp khác Vì thế khi cần xây dựng một ứng dụng cho KDD vào thực tế vấn đề đầu tiên người ta phải quan tâm tới là chia dữ liệu thành từng nhóm Việc phân nhóm giúp cho chúng ta có cái nhìn tổng quan hơn về từng khối dữ liệu Đặc biệt khi việc phân nhóm tốt, thời gian xem xét cơ sở dữ liệu được giảm xuống bởi vì chúng ta không nhất thiết phải tìm kiếm trong toàn bộ cơ sở dữ liệu mà chỉ phải tìm kiếm ở một lớp (nhóm) các dữ liệu trong cơ sở dữ liệu lớn
1.2 Phân nhóm (Clustering) và các cách tiếp cận chính
Trang 21Không giống như trong quá trình phân loại (classification), ta thường biết trước tính chất hay đặc điểm của các đối tượng trong cùng một lớp và dựa vào đó để
ấn định một đối tượng mới vào lớp của nó Thay vào đó, trong quá trình phân nhóm
ta không hề biết trước tính chất của các lớp mà phải dựa vào mối quan hệ giữa các đối tượng để tìm ra sự giống nhau giữa các đối tượng theo một độ đo nào đó đặc trưng cho mỗi lớp
Một ví dụ cho việc phân nhóm để tìm hiểu về các vì sao và nhiệt độ của nó Biểu đồ trên hình 1.2 được gọi là biểu đồ Hertzsprung-Russell với trục tung là độ sáng và trục hoành là nhiệt độ (theo độ K)
Hình 1.2: Biểu đồ Hertzsprung-Russell
Có thể thấy được rằng những ngôi sao trong biểu đồ thuộc vào một trong 3 lớp và trong mỗi lớp mối quan hệ giữa nhiệt độ và độ sáng là như nhau Giữa các lớp khác nhau mối quan hệ đó cũng khác nhau [4]
b Các ứng dụng của phân nhóm
Đây là một hoạt động quan trọng của con người Khi còn bé, con người học cách phân biệt giữa các đồ vật, giữa động vật và thực vật bằng cách liên tục thay đổi nhận thức trong quan niệm phân chia các đối tượng dựa vào mối tương quan giữa chúng Việc phân tích lớp đã được sử dụng rộng rãi trong các ứng dụng của nhiều lĩnh vực, bao gồm nhận dạng mẫu, phân tích dữ liệu, xử lý ảnh và phân tích thị trường Trong kinh doanh, phân nhóm có thể giúp các nhà nghiên cứu thị trường phát hiện được các nhóm khách hàng khác nhau và đặc tính của từng nhóm khách hàng dựa vào dữ liệu mua bán Trong sinh học, phân nhóm được dùng để chia nhóm các loài thực vật và động vật, phân loại gen có chức năng tương tự nhau và có được
Trang 22những thông tin chi tiết hơn về cấu trúc các vùng dân cư Phân nhóm cũng giúp cho việc nhận dạng các mẫu đất giống nhau dựa trên cơ sở dữ liệu quan sát trái đất, phân chia các nhóm nhà trong thành phố theo các tiêu chí như giá trị, vị trí địa lý của ngôi nhà Đồng thời phân nhóm còn sử dụng để phân chia các nhóm tài liệu trên Web dựa vào nội dung thông tin
Với vai trò là chức năng trong khai phá dữ liệu, phân tích lớp có thể sử dụng như là một công cụ độc lập để thu thập thông tin về sự phân bố dữ liệu, để quan sát các đặc tính của một lớp nhờ đó tập trung được vào từng lớp cụ thể cho các bước phân tích sau Ngoài ra, phân nhóm cũng là một bước tiền xử lý dữ liệu cho nhiều thuật toán như là phát hiện các đặc tính và phân loại dữ liệu trong đó các thuật toán này thường đòi hỏi thực hiện trên các lớp đã được phát hiện
Phân nhóm không bao giờ được sử dụng độc lập mà nó thường được sử dụng kèm với các phương pháp khác Khi một cách phân nhóm được đưa ra cũng phải có
một phương pháp áp dụng trên các lớp đó để đưa ra được ý nghĩa của lớp đó.[4]
1.2.2 Các cách tiếp cận chính
Có rất nhiều các thuật toán phân nhóm khác nhau, việc chọn lựa một thuật toán thích hợp phụ thuộc vào kiểu dữ liệu cần thực hiện cũng như là mục đích của ứng dụng Tuy nhiên các kỹ thuật phân nhóm được chia thành các cách tiếp cận chính sau: Phương pháp phân hoạch, phương pháp phân cấp, phương pháp dựa vào mật độ, phương pháp chia lưới, phương pháp dựa vào mô hình
a Phương pháp phân hoạch (Partioning methods)
Ý tưởng chính của kỹ thuật này phương pháp phân hoạch là xác định số nhóm (lớp) trước và xác định luôn tính chất của từng lớp Sau đó với mỗi một điểm
dữ liệu tìm cách đưa điểm dữ liệu đó vào lớp thích hợp nhất Các thuật toán điển hình là: K-MEANS, K-MEDOID, CLARANS,
Thuật toán phân hoạch K-MEANS [11]
Thuật toán phân nhóm K-MEANS là một phương pháp được sử dụng rất rộng rãi trong thực tế và nó có thể được biến đổi để thích hợp cho từng bài toán cụ thể Phương pháp này được J B MacQueen đưa ra vào năm 1967
Trang 23Bước 1: Chọn k điểm dữ liệu làm điểm tâm (center) hay nhân (seed) (ví dụ
như thuật toán MacQueen là lấy k điểm dữ liệu đầu tiên) Trong những trường hợp tổng quát, việc chọn nhân là những điểm có khoảng cách không gian giữa chúng lớn
có thể đáp ứng được việc phân nhóm tốt hơn
Bước 2: Xác định các điểm dữ liệu còn lại vào các lớp sao cho việc chia đó
là thích hợp nhất Điều đó có thể thực hiện một cách đơn giản bằng cách chia điểm
dữ liệu đó vào lớp nào gần với nó nhất Khoảng cách đó được đo bằng chính khoảng cách từ điểm đó tới nhân của lớp
Bước 3: Tính lại điểm tâm của các lớp Một cách đơn giản để tính lại điểm
tâm của lớp là xác định trung bình cộng của tất cả các điểm trong lớp
Lặp lại quá trình trên bắt đầu từ bước 2 cho đến khi không có sự thay đổi về lớp của các điểm dữ liệu (nghĩa là điểm tâm sẽ không thay đổi trong một sai số cho phép)
Có thể mô tả thuật toán K-means như sau:
Thuật toán phân hoạch CLARANS [4]
Thuật toán CLARANS (Clustering Large Applications based on Randomized
Search) là sự cải tiến của thuật toán K-MEANS với việc tìm k điểm nhân được xác
định một cách ngẫu nhiên và thuật toán tìm biên đã làm tăng hiệu quả của việc phân nhóm và do vậy thuật toán này thường được sử dụng khi xử lý dữ liệu lớn Để có
Trang 24được một chương trình hiệu quả về thời gian thực hiện thuật toán CLARANS đã có những sửa đổi sau:
1 Một lớp chỉ cần tính lại tâm nếu như có sự thêm hoặc bớt điểm vào lớp và cách tính tâm đó có thể được xác định như sau:
Khi thêm một điểm (xp, yp) vào lớp
) 1 /(
)
* (
) 1 /(
)
* (
n y y n y
n x x n x
p oldt New
p oldt New
Khi bớt một điểm (xp, yp) trong lớp
) 1 /(
)
* (
) 1 /(
)
* (
n y y n y
n x x n x
p oldt New
p oldt New
với n là số điểm trong lớp, (xold, yold) là tâm cũ và (xNew, yNew) là tâm mới
2 Khi có một tâm của một lớp thay đổi
Đối với những điểm trong lớp nếu khoảng cách từ điểm đó tới tâm mới lớn hơn khoảng cách đến tâm cũ thì kiểm tra xem có thể chuyển điểm đó sang lớp khác hay không Nếu có thể, thực hiện việc chuyển
Đối với những điểm ngoài lớp, nếu khoảng cách từ điểm đó tới tâm mới ngắn hơn khoảng cách đến tâm hiện tại thì thực hiện việc chuyển điểm đó tới lớp mới
Ưu điểm của thuật toán K-MEANS (hoặc thuật toán CLARANS) là rất đơn giản, dễ hiểu và dễ áp dụng Tuy nhiên, nhược điểm của K-MEANS (hay CLARANS) là tốc độ khi áp dụng với cơ sở dữ liệu lớn Thêm vào nữa, những thuật toán trên không thể làm việc với cơ sở dữ liệu có tồn tại dữ liệu nhiễu
b Phương pháp phân cấp (Hierarchical methods)
Phương pháp phân cấp thực hiện bằng cách nhóm các đối tượng dữ liệu trên cây phân cấp Phương pháp phân nhóm theo phân cấp được chia làm hai loại đó là
phương pháp phân nhóm theo kiểu từ dưới lên (bottom up) và phương pháp phân nhóm từ trên xuống (top down) Chất lượng và hiệu quả của phương pháp tùy thuộc
vào quyết định ghép hoặc chia lớp
Trang 25 Phân nhóm theo phương pháp từ dưới lên
Phân nhóm theo phương pháp từ dưới lên dựa vào độ đo khoảng cách giữa hai lớp ở mỗi bước để quyết định ghép hai lớp đó hay không Khởi tạo số lớp bằng số điểm dữ liệu, mỗi một lớp chỉ có duy nhất một điểm dữ liệu (nếu cơ sở dữ liệu có N điểm dữ liệu thì ban đầu sẽ có N lớp) Sau đó, tại một bước ghép hai lớp có khoảng cách nhỏ nhất (hay mức độ tương tự giữa chúng là lớn nhất) Thực hiện như vậy
N-1 bước, chúng ta được duy nhất một lớp
Lớp sau khi thực hiện N-1 bước được tạo thành gọi là lớp gốc Cùng với cây mới tạo được chúng ta có thể chọn k lớp thích hợp nhất cho bài toán bằng cách cho vào một tham số để kết thúc việc ghép lớp Cách làm này đưa đến một bài toán nhỏ hơn đó là phải đo được khoảng cách giữa hai lớp Hình 1.3 mô tả việc phân nhóm
có thứ bậc theo kiểu bottom-up có hình dạng như một cây được xây dựng dần từ dưới lên gốc
Phân nhóm theo phương pháp trên xuống
Phân nhóm theo phương pháp trên xuống thực hiện quá trình ngược lại với phương pháp trước, tại mỗi bước sẽ quyết định chia một lớp hay không Khởi tạo ban đầu chỉ có một lớp gồm tất cả các điểm dữ liệu trong cơ sở dữ liệu, quá trình thực hiện tương tự như việc xây dựng một cây bắt đầu từ gốc Chúng ta tìm cách chia mỗi nút gốc (nút cha) thành hai nút con (trong các thuật toán mở rộng, số nút con tách ra của một nút có thể lớn hơn hai) Quá trình chia được thực hiện cho đến khi thoả mãn điều kiện về lớp đưa vào hoặc đến khi mỗi lớp chỉ gồm 1 đối tượng
Hình 1.3: Mô tả cách phân nhóm theo phương pháp từ dưới lên
và từ trên xuống
Trang 26Khó khăn của phương pháp phân cấp là việc chọn lựa điểm để thực hiện quá trình ghép hoặc chia lớp bởi quá trình tiếp theo sẽ thực hiện tiếp trên lớp đã được tạo ra Khi đã đưa ra quyết định chia hoặc ghép lớp ta không thể thực hiện lại do vậy một điểm đã thuộc lớp này sẽ không thể chuyển sang lớp khác Tuy nhiên điều này cũng có ưu điểm là tăng thời gian tính toán do không phải thực hiện chuyển đổi nhiều lần một đối tượng Để khắc phục nhược điểm của phương pháp phân cấp một
số thuật toán đã đưa ra các cách tiếp cận khác nhau:
Thực hiện phân tích kỹ mối liên kết giữa các đối tượng tại mỗi bước phân hoạch, cách tiếp cận này được thực hiện trong thuật toán CURE [11] và CHAMELEON [11], [8]
Kết hợp giữa phân cấp từ dưới lên với quá trình lặp phân hoạch lại bằng cách lúc đầu thực hiện phân cấp để tìm ra số các lớp, sau đó thực hiện quá trình lặp nhằm phân bố lại các đối tượng giữa các lớp cho thích hợp Một trong những thuật toán sử dụng cách tiếp cận này là thuật toán BIRCH [11],[9]
c Phương pháp dựa vào mật độ (Density - Based Methods)
Hầu hết các phương pháp phân nhóm theo phân hoạch chủ yếu dựa vào khoảng cách các đối tượng Do vậy các phương pháp này chỉ tìm được các lớp có hình dạng đơn giản và sẽ gặp khó khăn khi cần tìm các lớp với hình dạng bất kỳ Phương pháp phân nhóm dựa vào mật độ có khả năng phát hiện các lớp với hình dạng bất kỳ Ý tưởng chính của phương pháp là xây dựng một lớp khi mật độ của các điểm trong một lớp lớn hơn một ngưỡng nào đó, nếu các điểm có mật độ nhỏ hơn ngưỡng các điểm đó sẽ được coi là nhiễu Một số các thuật toán tiêu biểu của phương pháp này là thuật toán DBSCAN [5], OPTICS [12], DENCLUE [7]
d Phương pháp dựa vào chia lưới (Grid-based methods)
Phương pháp chia lớp dựa vào chia lưới sử dụng cấu trúc dữ liệu chia lưới đa phân giải nghĩa là thực hiện lượng tử hóa không gian đối tượng thành một số xác định các ô lưới Khi đó tất cả các thao tác chia lớp được thực hiện trên cấu trúc chia lưới Ưu điểm chính của phương pháp là thời gian xử lý nhanh bởi thời gian xử lý không phụ thuộc vào số các đối tượng dữ liệu mà chỉ phụ thuộc vào số các ô lưới
Trang 27trong không gian lượng tử Một số thuật toán sử dụng phương pháp này đó là thuật toán STING, Wave Cluster, CLIQUE [11],[9]
e Phương pháp dựa vào mô hình (Model -based methods)
Phương pháp chia lớp dựa vào mô hình thực hiện bằng cách đề xuất ra một mô hình cho mỗi lớp và tìm các dữ liệu phù hợp cho mỗi mô hình đó Thuật toán dựa vào
mô hình có thể xác định các lớp bằng cách xây dựng một hàm mật độ phản ánh sự phân bố không gian của các điểm dữ liệu
Nhận xét
Có rất nhiều các phương pháp phân nhóm, mỗi một phương pháp đều có rất nhiều các thuật toán tương ứng Tuỳ thuộc vào từng bài toán cụ thể mà ta có thể áp dụng các thuật toán khác nhau Mỗi một thuật toán đó sẽ đáp ứng được một lớp các vấn đề về tìm kiếm tri thức
1.3 Hệ quản trị cơ sở dữ liệu không gian
1.3.1 Cơ sở dữ liệu không gian
Dữ liệu không gian là dạng dữ liệu đặc biệt, mỗi điểm dữ liệu trong cơ sở dữ liệu ngoài những giá trị biểu thị cho điểm dữ liệu đó còn những giá trị biểu diễn vị trí và toạ độ của điểm đó Hay nói cách khác một điểm dữ liệu không gian gồm hai tập tính chất:
Tính chất mang tính không gian (spatial properties): Là những tính chất
thể hiện cho toạ độ, vị trí của điểm dữ liệu
Tính chất phi không gian (non-spatial properties): Là những tính chất không
liên quan đến vị trí của điểm dữ liệu mà chỉ đơn thuần là những giá trị mà điểm đó có
Mối quan hệ giữa tính chất không gian và tính chất phi không gian liên kết rất chặt chẽ và có thể dựa vào tính chất không gian để đưa ra được tính chất phi không gian và ngược lại Ví dụ như dựa vào tính chất về tỷ lệ người thất nghiệp của một điểm dữ liệu, chúng ta có thể đưa ra được dự đoán về vị trí của điểm đó (trung tâm thành phố, nông thôn, miền núi ) Hoặc dựa vào vị trí của điểm đó với các điểm trung tâm thành phố, chúng ta có thể đưa ra được tỷ lệ thất nghiệp với một
mức độ chính xác nhất định
Trang 281.3.2 Hệ quản trị cơ sở dữ liệu không gian
Hệ quản lý cơ sở dữ liệu không gian là một bộ các công cụ cho phép thực hiện tổ chức, lưu trữ, sắp xếp và tìm kiếm dữ liệu trong cơ sở dữ liệu không gian được nhanh chóng và hiệu quả Các bộ công cụ này phải có các đặc thù riêng để đáp ứng và tận dụng được hết các đặc tính không gian Hệ thống này cung cấp các kiểu
dữ liệu không gian cũng như các phương thức truy nhập dữ liệu và các phép toán thực hiện trên kiểu dữ liệu không gian Ví dụ truy vấn là một trong những phép thực hiện được sử dụng nhiều nhất trong hệ cơ sở dữ liệu không gian bao gồm hai loại truy vấn phổ biến là:
Truy vấn vùng (Region queries): Trả ra miền chứa toàn bộ những điểm dữ
liệu thoả mãn một điều kiện nào đó được đưa ra trong yêu cầu người dùng
Truy vấn lân cận gần nhất (Nearest neighbor-NN): Là một phép toán trả về
các đối tượng gần với đối tượng được truy vấn nhất
Một phép toán trên cơ sở dữ liệu thông thường có thể được thực hiện bằng cách duyệt toàn bộ những đối tượng trong cơ sở dữ liệu đó Tuy nhiên trong cơ sở
dữ liệu không gian có thể có những tính chất khác Ví dụ nếu trong không gian hai chiều, chúng ta cần tìm một điểm gần một điểm có toạ độ (x0, y0) chúng ta có thể duyệt với tất cả những điểm trong tập cơ sở dữ liệu nhưng nếu chúng ta có một cấu trúc dữ liệu với những điểm mang tính không gian, việc tìm điểm gần điểm (x0, y0) nhất không nhất thiết phải duyệt toàn bộ cơ sở dữ liệu
Hình 1.4: Những điểm nằm trong miền tô sẫm mới được xét đến khi tìm điểm
gần nhất cho điểm x Những điểm ngoài miền không cần xét đến
Trang 29Trong trường hợp trên chúng ta chỉ cần xét những điểm nằm trong miền giữa hai đường thẳng x0 - và x0 + Những điểm còn lại không cần thiết phải xét Giá trị có thể chọn là giá trị từ điểm x0 với điểm kế tiếp x0 trong danh sách
1.3.3 Phương pháp truy nhập không gian
Các phương thức truy nhập không gian (Spatial Access Method - SAM) đã được phát triển để hỗ trợ hiệu quả cho xử lý các truy vấn trong hệ quản lý cơ sở dữ liệu không gian Các phương pháp này thực hiện tổ chức dữ liệu trong cơ sở dữ liệu cũng như là tổ chức toàn bộ không gian dữ liệu thích hợp nhất để giúp cho việc xem xét tìm ra câu trả lời cho một truy vấn chỉ cần thực hiện trong một tập con tối thiểu của cơ sở dữ liệu
Các phương pháp truy nhập không gian sử dụng khái niệm đối tượng xấp xỉ
(approxiamtion) là một đối tượng được đơn giản hoá loại bỏ đi các thuộc tính
không gian phức tạp mà chỉ gồm các thuộc tính chính đảm bảo nhận biết được đối tượng Dựa vào khái niệm này xử lý một truy vấn có thể thực hiện theo hai bước sau
Bước lọc (filtering step): Dựa vào các đối tượng xấp xỉ để tìm ra một tập
các đối tượng ứng cử viên nhằm giảm bớt càng nhiều càng tốt số lượng các đối tượng phải kiểm tra
Bước đánh giá lại (redefinement step): Thực hiện kiểm tra lại các đối tượng trong tập các đối tượng ứng cử viên xem có thoả mãn các điều kiện truy vấn hay không
Đối tượng xấp xỉ được sử dụng phổ biến nhất đó là hộp giới hạn (bouding box - BB) đó là một hình chữ nhật nhỏ nhất mà có chứa một đối tượng không gian
Do vậy, hầu hết các phương pháp truy nhập không gian được thiết kế chủ yếu để thực hiện việc quản lý các hình chữ nhật này Hai phương pháp truy nhập không gian phổ biến đó là phương pháp chia lưới và R*-tree thường được đề cập đến bởi tính hiệu quả và mức độ đơn giản của chúng
a Phương pháp chia lưới (grid file)
Phương pháp chia lưới được thiết kế để quản lý những điểm trong không gian dữ liệu đa chiều (d-chiều) Nó sẽ chia toàn bộ không gian dữ liệu thành những
Trang 30khối d chiều với kích thước của các cạnh nói chung là đều nhau Tuy nhiên việc chọn kích thước của các cạnh cho khối cũng là một bài toán cần được giải quyết trước khi sử dụng phương pháp chia lưới
Với d trục trong không gian dữ liệu d chiều tạo nên một mảng d chiều và gọi
là từ điển dữ liệu Mỗi một phần tử gọi là một cell và có thể chứa một hoặc nhiều điểm dữ liệu hoặc cũng có thể không chứa điểm dữ liệu nào Những cell không chứa điểm nào thì không được xét đến và gọi là cell rỗng Mỗi một điểm dữ liệu phải nằm trong một cell của mảng và tất cả những điểm dữ liệu trong cùng một cell được lưu trữ cùng với nhau một cách riêng biệt với các cell khác Nói cách khác là các điểm dữ liệu trong cùng một cell được lưu trữ thành một khối và độc lập với các điểm dữ liệu thuộc các cell khác Trong một số trường hợp chúng ta có thể lưu trữ một vài cell liền kề thành một khối để giảm bớt bộ nhớ Một miền có thể là một số cell nằm trọn trong miền đó hoặc là các cell giao với miền đó
Phương pháp chia lưới có thể áp dụng tốt trong rất nhiều ứng dụng tuy nhiên
có một hạn chế đó là số cell tăng theo hàm số mũ với d nên phương pháp này chỉ có thể áp dụng với những dữ liệu có số chiều không quá lớn
Hình 1.5: Một cách chia lưới Những ô mầu sẫm là những ô chứa dữ liệu và được lưu trữ Những ô màu trắng là những ô không chứa dữ liệu
b Phương pháp R*-TREE
R*-tree tạo ra một một cây nhị phân một chiều (1-dimensional binary-tree)
cho không gian dữ liệu d chiều Đặc biệt là R*-tree quản lý những khối hình chữ nhật d chiều bằng một mảng một chiều gọi là khoá Một R*-tree có thể lưu giữ đối
Trang 31Bounding Rectangle - MBR) Phương pháp này xấp xỉ mỗi điểm đối tượng thành
một hình chữ nhật nhỏ nhất có thể và lưu trữ hình chữ nhật đó
Những lá của R*-tree lưu giữ một MBR của một đối tượng và một con trỏ trỏ đến đối tượng thực trong không gian địa lý Những nút bên trong lưu trữ những dãy cặp gồm một hình chữ nhật và con trỏ trỏ đến nút con của nút đó Những hình chữ nhật này hoặc chính là một MBR hoặc là nút gốc của một cây con trong R*-tree
Ví dụ
Hình 1.6: Mô phỏng một R*-tree gồm 3 mức
Để trả lời câu hỏi về một miền ta bắt đầu xuất phát từ gốc và chỉ những hình chữ nhật nào có giao với miền cần trả lời sẽ được xét đến Sau đó, xét tiếp đến các nút con của những nút đó cho tới khi tìm ra được trang dữ liệu cần tìm
1.4 Kết luận
Qua chương này, chúng tôi đã trình bày tổng quan về khai phá tri thức trong
cơ sở dữ liệu không gian Tìm hiểu một số khái niệm và các vấn đề liên quan đến khai phá tri thức trong cơ sở dữ liệu, các tính chất và đặc trưng của cơ sở dữ liệu không gian Tập trung nghiên cứu một lĩnh vực của khai phá dữ liệu là kỹ thuật phân nhóm trong cơ sở dữ liệu bao gồm các phương pháp sử dụng trong kỹ thuật phân nhóm nhằm giải quyết các mục tiêu của luận văn
Trang 32Chương 2
CÁC CÁCH TIẾP CẬN CỦA KỸ THUẬT PHÂN NHÓM
Các kỹ thuật phân nhóm có rất nhiều cách tiếp cận và các ứng dụng trong thực tế, nó đều hướng tới hai mục tiêu chung đó là chất lượng của các nhóm khám phá được và tốc độ của thuật toán Hầu hết các thuật toán theo hai cách tiếp cận: Phương pháp phân hoạch (Partitioning Methods) và phương pháp phân cấp (Hierarchical Methods) là hai phương pháp phân nhóm dữ liệu cổ điển, hiện đã có rất nhiều thuật toán cải tiến dựa trên hai phương pháp này đã được áp dụng phổ biến trong khai phá dữ liệu Làm việc hiệu quả với các dữ liệu nhỏ và cho kết quả tốt Tuy nhiên, khi áp dụng các thuật toán trên vào cơ sở dữ liệu lớn, phức tạp và đặc biệt là có chứa nhiễu thì không phải thuật toán nào cũng cho kết quả tốt cả về hiệu quả tri thức tìm được cũng như thời gian chạy chương trình
Các thuật toán áp dụng cho cơ sở dữ liệu không gian cần đạt được 3 yêu cầu chính: (1) số các tham số đầu vào là tối thiểu (2) phát hiện các lớp với hình dạng bất kỳ (3) hiệu quả với các cơ sở dữ liệu lớn, đa chiều và có nhiễu Tuy nhiên khó có thể đưa ra được một thuật toán nhằm thoả mãn một cách chính xác các yêu cầu này [9]
Sau đây là một số thuật toán phân nhóm sử dụng cho dữ liệu không gian có hình dạng tuỳ ý và đặc biệt chứa nhiễu
2.1 Thuật toán DBSCAN
Thuật toán phân nhóm dựa trên mật độ thông dụng nhất là thuật toán
DBSCAN (Density Based Spatial Clustering of Applicatins with Noise)[5] do Ester,
P Kriegel và J Sander đề xuất năm 1996 Thuật toán đi tìm các đối tượng mà có số đối tượng láng giềng lớn hơn một ngưỡng tối thiểu Một nhóm được xác định bằng tập tất cả các đối tượng liên thông mật độ với các láng giềng của nó
Thuật toán DBSCAN dựa trên các khái niệm mật độ có thể áp dụng cho các
Trang 332.1.1 Các định nghĩa và bổ đề được sử dụng trong thuật toán DBSCAN
Định nghĩa 1: Các lân cận của một điểm P với ngưỡng Eps, ký hiệu NEps(p)
được xác định như sau:
NEps(p) = {q D khoảng cách (p, q) Eps}, D là tập dữ liệu cho trước
Hình 2.1: Lân cận của P với ngưỡng Eps
Một điểm p muốn nằm trong một lớp C nào đó thì NEps(p) phải có tối thiểu MinPts điểm Số điểm tối thiểu được chọn là bao nhiêu cũng là một bài toán khó vì: Nếu số điểm tối thiểu lớn chỉ những điểm nằm thực sự trong lớp C mới đạt đủ tiêu chuẩn, trong khi những điểm nằm ở ngoài biên không thể đạt được điều đó Ngược lại, nếu số điểm tối thiểu là nhỏ mọi điểm sẽ chỉ rơi vào một lớp
Như định nghĩa trên thì chỉ những điểm nằm thực sự trong lớp mới thoả mãn điều kiện là điểm của lớp Những điểm nằm ở biên thì không thoã mãn điều kiện thuộc lớp Để tránh được điều đó chúng ta có thể đưa ra một tiêu chuẩn khác để định nghĩa một điểm thuộc vào một lớp như sau: Nếu một điểm p muốn thuộc một lớp C phải tồn tại một điểm q mà p NEps(q) và số điểm trong NEps(q) phải lớn hơn số điểm tối thiểu Điều này có thể được định nghĩa như sau
Định nghĩa 2: Mật độ - đến được trực tiếp (directly density-reachable) Một
điểm P được gọi là mật độ - đến được trực tiếp từ điểm q với ngưỡng Eps và MinPts trong tập đối tượng D nếu:
p NEps(q) Với NEps(q) là tập con của D
|| NEps(q) || MinPts Điều kiện đối tượng nhân
Điểm q gọi là điểm nhân (core point)
Ký hiệu || x || là số phần tử của tập x, MinPts là một số thực dương
Trang 34Ta thấy rằng nó là một hàm phản xạ và đối xứng đối với hai điểm nhân và bất đối xứng nếu một trong hai điểm đó không phải là điểm nhân
Hai điểm biên của một lớp C có thể không đến đƣợc nhau bởi vì có thể cả hai đều không thoả mãn điều kiện nhân Mặc dù vậy, phải tồn tại một điểm nhân trong
C mà cả hai điểm đều có thể đến đƣợc từ điểm đó Để thuận tiện chúng ta sẽ đƣa ra
một định nghĩa liên thông mật độ (density-connectivity)
Định nghĩa 4: Mật độ liên thông (density-connected): Đối tƣợng p là mật độ
liên thông với điểm q theo hai tham số Eps với MinPts nếu nhƣ có một đối tƣợng o
mà cả hai đối tƣợng p, q điều là mật độ đến đƣợc o theo tham số Eps và MinPts
Trang 35Hình 2.4: Mật độ liên thông
Định nghĩa 5: Nhóm và nhiễu
Giả sử D là một tập các điểm dữ liệu Một tập con C khác rỗng của D đƣợc
gọi là một lớp (cluster) theo Eps và MinPts nếu thoả mãn hai điều kiện:
1) p, q D, nếu p C và q có thể đến đƣợc từ p theo Eps và MinPts thì q C 2) p, q C, p liên thông mật độ với q theo Eps và MinPts
Mọi đối tƣợng không thuộc nhóm nào cả thì gọi là nhiễu
Định nghĩa 6: Dữ liệu nhiễu (noise): Giả sử C1, C2, , Ck là các lớp trong tập
dữ liệu D theo tham số Eps và MinPts, điểm dữ liệu nhiễu là điểm dữ liệu không thuộc vào lớp nào trong các lớp C1, C2, , Ck tức là Noise = {p D i = 1 k, p Ci}
Tiếp sau là hai bổ đề để chứng minh cho việc chia lớp của chúng ta theo cách trên là hoàn toàn đúng đắn
Bổ đề 1: Giả sử p là một điểm trong D và ||NEps(p)|| MinPts, tập O = {o o
D} và o có thể đến đƣợc từ p theo Eps và MinPts sẽ là một lớp theo Eps và MinPts
Trang 36Nhƣ vậy, nhóm C không hoàn toàn là duy nhất, tuy nhiên, mỗi một điểm trong C đến đƣợc mật độ từ bất cứ một điểm nhân nào của C, vì vậy C chứa đúng một số điểm liên thông với điểm nhân tuỳ ý
Bổ đề 2: Giả sử C là một lớp theo hai tham số Eps và MinPts và p là một
điểm thuộc C với ||NEps(p)|| MinPts, khi đó C trùng với tập
O = { o o D và o là mật độ - đến đƣợc từ p theo Eps và MinPts}
2.1.2 Thuật toán DBSCAN
Để tìm ra các lớp, DBSCAN bắt đầu bằng cách xét một điểm p bất kì và tìm tất cả những điểm có thể đến đƣợc từ p Nếu p là một điểm nhân theo bổ đề 2 ta đã xây dựng đƣợc một lớp Nếu p không phải là điểm nhân, số điểm có thể đến đƣợc từ
p là 0 Lúc đó bỏ qua p và xét đến điểm tiếp theo
DBSCAN (SetOfPoints, Eps, MinPts)
If Point.Cl_ID = UnClassified then
If ExpandCluster(SetOfPoints,Point, ClusterId, Eps, MinPts) then
Hình 2.6: Mô phỏng thuật toán DBSCAN
Hàm SetOfPoints.get (i) đƣa ra giá trị của phần tử thứ i trong tập dữ liệu
Hàm NextId(CurrentId) cho ra giá trị là số hiệu của lớp tiếp theo
Trang 37 Hàm ExpandCluster cho giá trị là đúng nếu như điểm đó là điểm nhân và hàm đó sẽ thực hiện việc xây dựng lên lớp chứa nhân đó Trong trường hợp ngược lại hàm cho giá trị là sai và đánh dấu điểm đó là điểm nhiễu Việc đánh dấu một điểm là
điểm nhiễu có thể được thay đổi khi điểm đó lại thuộc vào một lớp được xét sau
ExpandCluster(SetOfPoints,Point,ClusterId,Esp,MinPts):Boolean;
Seeds := SetOfPoints.RegionQuery(Point, Eps);
If Seeds.size < MinPts then
Result := SetOfPoints.RegionQuery(CurrentP, Eps);
If (Result.size >= MinPts) Then
For i := 1 to Result.size do
ResultP := Result.get(i);
If (ResultP.ClId in [UnClassifed, Noise]) then
If ResultP.ClId = UnClassifed then
Lời gọi SetOfPoints.RegionQuery(CurrentP, Eps) trả ra một danh sách các
điểm thuộc vào NEps(CurrentP) với tham số Eps Hàm này có thể được thực hiện bằng phương pháp hiệu quả như R*-tree với thời gian thực hiện là O(log(n)) với tập
dữ liệu nhỏ Trong những trường hợp tổng quát, độ phức tạp thời gian là O(nlog(n)) với n là số điểm dữ liệu trong cơ sở dữ liệu
Trang 38Nếu hai lớp C1 và C2 quá gần nhau và điểm p thuộc cả hai lớp thì p phải là một điểm biên và thuộc vào lớp nào được xét trước
2.2 Thuật toán DBCLASD
Thuật toán DBCLASD (Distribution Based Clustering of LArge Spatial
Databases) [6] thực hiện dựa trên sự phân bố đồng đều của các điểm trong một lớp
Khi đó, mỗi lớp sẽ được đặc trưng bằng một phân bố xác suất khoảng cách của các điểm lân cận gần nhất Nếu với mỗi lớp ta tìm được sự phân bố đặc trưng này thì có thể dễ dàng xác định được một điểm lân cận có thuộc vào lớp đó hay không Ví dụ trên hình 2.8 bằng trực quan ta dễ dàng thấy được tập các điểm dữ liệu được chia thành hai lớp, và khoảng cách từ một điểm đến lân cận gần nhất của nó trong một lớp nhỏ hơn nhiều so với các điểm ở ngoài lớp
Hình 2.8: Ví dụ dữ liệu tập các điểm được chia thành 2 lớp
2.2.1 Một số định nghĩa
Định nghĩa 7: (Lân cận gần nhất của 1 điểm và khoảng cách lân cận gần nhất)
Với q là điểm đang xét và S là tập các điểm Lân cận gần nhất của q trong S,
ký hiệu NNS(q) là một điểm p thuộc tập S - {q} có khoảng cách đến q là nhỏ nhất Khoảng cách từ q đến lân cận nhỏ nhất của nó trong S gọi là khoảng cách lân cận gần nhất của q, ký hiệu NNdistS(q)
Định nghĩa 8: (Tập các khoảng cách lân cận gần nhất của tập các điểm)
Xét S là tập các điểm và ei là các thành phần trong S Tập các khoảng cách
lân cận gần nhất của S, ký hiệu là NNdistSet(S) để cho ngắn gọn gọi là tập khoảng
cách, là tập các giá trị NNdistS(ei)
Mô hình thống kê với các định nghĩa về lớp
Chúng ta cần xác định phân bố xác suất của các khoảng cách lân cận gần
Trang 39các điểm Vol(R) Chúng ta có thể tưởng tượng rằng N điểm này sẽ nằm bất kỳ trong không gian dữ liệu R, dẫn đến xác suất để một điểm trong N điểm này nằm vào vùng không gian con S của R với số lượng Vol(S) bằng Vol(S)/Vol(R) Xác suất để khoảng cách lân cận gần nhất D của một điểm đang xét q đến điểm gần nhất của nó nằm trong vùng R lớn hơn một giá trị x nào đó sẽ bằng xác suất để không có điểm nào trong số N điểm nằm trong hình cầu tâm q bán kính x, ký hiệu là SP(q,x) Khi
đó xác suất này sẽ là:
P (D > x) = (1 - Vol(SP(q,x))/Vol(R))NNhư vậy, xác suất để D không lớn hơn x là:
P (D x) = 1 - P(D > x) = 1 - (1-Vol(SP(q,x))/Vol(R))NTrong không gian 2 chiều, hàm phân bố khoảng cách sẽ là:
F(x) = P(D x) = 1 - (1 - x2 / Vol(R))N(*)
Từ (*), chúng ta thấy rằng hàm phân bố có hai tham số N và Vol(R) Trong
đó việc xác định N tương đối đơn giản, nhưng không dễ dàng tính được Vol(R) là tập các điểm có hình dạng bất kỳ
Xác định vùng xấp xỉ của một lớp
Thực chất không thể khoanh vùng chính xác cho một tập điểm mà chỉ ấn định được một vùng xấp xỉ đối với tập con S Tuy nhiên vùng xấp xỉ của tập con S cần đạt được hai yêu cầu: hình dạng của vùng xấp xỉ càng gần giống với hình dạng của lớp quan sát được càng tốt và vùng xấp xỉ phải có tính liên thông nghĩa là nó phải có dạng một đa giác có thể có các lỗ trống ở giữa
Chúng ta sẽ sử dụng phương pháp chia lưới để xác định đa giác xấp xỉ Vấn
đề là ở chỗ cần chọn độ rộng của mỗi ô lưới bao nhiêu là thích hợp nhất Nếu chiều rộng mỗi ô lưới quá lớn, hình dạng của lớp xấp xỉ không chính xác Ngược lại, nếu chọn độ rộng mỗi ô lưới quá nhỏ, vùng xấp xỉ có thể sẽ bị chia thành các vùng đa giác không liên thông Hình 2.9 minh hoạ ảnh hưởng của độ rộng ô lưới đến việc xác định vùng xấp xỉ Ta sẽ chọn độ rộng ô lưới đối với một tập điểm S là thành phần cực đại của NNDistSet(S)
Trang 40Hình 2.9: Ảnh hưởng của độ rộng ô lưới đến việc xác định vùng xấp xỉ
Một ô lưới được gọi là đang sử dụng nếu ô lưới đó có chứa ít nhất một điểm trong tập các điểm và vùng xấp xỉ của tập S chính là hợp của các ô lưới đang sử dụng Dựa vào việc xác định một vùng cho mỗi lớp, Hình 2.10 so sánh sự phân bố khoảng cách mong đợi và phân bố khoảng cách quan sát đối với lớp 1 trong Hình 2.8
Hình 2.10 chỉ ra sự phù hợp giữa phân bố quan sát và phân bố mong đợi Thông thường chúng ta sử dụng khái niệm 2
- test để xác định sự phân bố khoảng cách quan sát có phù hợp với phân bố mong đợi không
Để kết luận cho những vấn đề đã trình bày ở trên, ta đưa ra một định nghĩa
về lớp dựa vào sự phân bố khoảng cách gần nhất như sau:
Định nghĩa 9: (Lớp) DB là một tập các điểm Một lớp C là một tập con
không rỗng của DB thoả mãn các điều kiện sau:
(1) NNDistSet(C) phải có sự phân bố mong đợi với một mức độ tin cậy xác định (2) C có tính chất cực đại (maximality), nghĩa là khi thêm các điểm lân cận
vào lớp C điều kiện (1) vẫn được thoả mãn
(3) C có tính chất liên thông (connectivity), nghĩa là với mỗi cặp điểm (a, b)
thuộc lớp luôn tồn tại một đường đi qua các ô lưới đã sử dụng nối giữa a và b
Hình 2.10: Phân bố khoảng cách mong đợi và khoảng cách quan sát