Một số định nghĩa

Một phần của tài liệu 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 (Trang 38 - 45)

Đị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 nhất. Cho N điểm phân bố đồng đều trong vùng không gian dữ liệu R với số lƣợng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ cá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))N Nhƣ 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))N Trong 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).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Hì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 của lớp 1 trong hình 2.8

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

2.2.2. Thuật toán DBCLASD

Dựa vào lý thuyết đã trình bày ở trên, trong phần này chúng ta sẽ tiến hành xây dựng thuật toán phân lớp dựa vào sự phân bố khoảng cách trong cơ sở dữ liệu không gian. DBCLASD là thuật toán tăng dần nghĩa là việc xác định một điểm thuộc lớp chỉ dựa vào những điểm đã đƣợc xử lý mà không phải dựa vào toàn bộ lớp hoặc cả cơ sở dữ liệu. Số lƣợng các phần tử trong lớp sẽ tăng dần bằng cách thêm vào đó các điểm lân cận mà vẫn thoả mãn điều kiện khoảng cách lân cận gần nhất của lớp phù hợp với sự phân bố khoảng cách mong đợi.

Một ứng cử viên (candidate) là một điểm chƣa thuộc lớp đang xét và cần đƣợc kiểm tra để xác định xem điểm này có thuộc vào lớp đang xét hay không.

Quá trình sinh các ứng cử viên (candidate)

Tập các ứng cử viên đối với một lớp có thể đƣợc xác định bằng cách sử dụng các truy vấn vùng (region queries) và điều này có thể thực hiện đƣợc dễ dàng nếu kết hợp sử dụng các phƣơng thức truy nhập không gian nhƣ là R*-tree. Một truy vấn vùng sẻ trả về tất cả các đối tƣợng trong cơ sở dữ liệu mà thoả mãn điều kiện truy vấn. Với mỗi thành viên mới p thuộc lớp C, chúng ta lại tìm đƣợc các ứng cử viên mới. Ví dụ điều kiện truy vấn vùng là các điểm giới hạn trong một hình tròn với bán kính m, khi đó bán kính này đƣợc chọn sao cho không có điểm nào thuộc lớp mà khoảng cách đến lân cận gần nhất lớn hơn giá trị mong đợi. Việc tính toán m một lần nữa lại dùng đến mô hình các điểm phân bố đồng nhất trong một lớp C. Với A là một vùng thuộc C và N là số các thành phần của A. Một điều kiện cần đối với m là:

N x P(NNDistC(p) > m) < 1 Thay biểu thức (*) ở phần trƣớc vào ta đƣợc: (adsbygoogle = window.adsbygoogle || []).push({});

(1 - m2/A)N < 1/N Nhƣ vậy ta suy ra đƣợc điều kiện của m:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Khi thêm một điểm p vào lớp C, truy vấn vùng cần thực hiện là vòng tròn tâm p bán kính m và sẽ thu đƣợc một tập các điểm kết quả chính là các ứng cử viên mới.

Kiểm tra các ứng cử viên

Với cách thực hiện tăng dần trong quá trình thực hiện thuật toán ta thấy rằng có sự phụ thuộc vào thứ tự sinh và thứ tự kiểm tra các ứng cử viên trong quá trình tạo lớp. Khi tập khoảng cách của toàn bộ lớp vẫn còn phù hợp với phân bố khoảng cách mong đợi thì sẽ không cần phải lƣu giữ các tập con của lớp. Do vậy thứ tự kiểm tra các ứng cử viên là rất cần thiết. Các ứng cử viên kiểm tra lần đầu mà không đƣợc chấp nhận gọi là các ứng cử viên chƣa thành công (unsuccessful candidate). Để giảm sự phục thuộc vào thứ tự kiểm tra các ứng cử viên, DBCLASD đã thực hiện 2 chiến lƣợc sau:

(1) Các ứng cử viên chƣa thành công sẽ không bị loại bỏ mà sẽ đƣợc kiểm tra lại. (2) Các điểm đã đƣợc ấn định vào một lớp sau đó có thể sẽ bị chuyển sang lớp khác.

Khi tất cả các ứng cử viên trong lớp hiện thời đã đƣợc xử lý, các ứng cử viên chƣa thành công sẽ đƣợc xét đến và kiểm tra lại. Trong nhiều trƣờng hợp có thể các ứng cử viên này sẽ phù hợp với sự phân bố khoảng cách khi mà các phần tử của lớp đã tăng lên.

Để tránh đƣa ra các sai sót trong việc chia lớp, DBCLASD cố gắng thực hiện việc ghép các lớp lân cận bằng cách kiểm tra các ứng cử viên đã đƣợc ấn định cho một lớp. Trong quá trình sinh các ứng cử viên, DBCLASD không kiểm tra một ứng cử viên đã thuộc lớp hay chƣa. Mặc dù cách này cho phép ghép các lớp khá tốt, nhƣng ngƣợc lại nó lại phải trả giá ở thời gian tính toán. Nhƣ vậy có thể một số điểm sẽ bị chuyển qua chuyển lại giữa các lớp nhiều lần trƣớc khi nó đƣợc ấn định vào lớp cuối cùng. Tuy nhiên trong đa số trƣờng hợp số lần ấn định lại lớp của một điểm là có thể chấp nhận đƣợc.

Thuật toán DBCLASD sẽ kết thúc bởi 2 điều kiện sau:

Mỗi điểm trong cơ sở dữ liệu sẽ đƣợc chọn nhiều nhất một lần làm điểm bắt đầu của lớp.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Việc sinh các lớp sẽ kết thúc bởi nếu không còn ứng cử viên, các ứng cử viên chƣa thành công sẽ không đƣợc kiểm tra lại nếu sau một lần kiểm tra không có điểm nào trong số chúng phù hợp với lớp hiện thời.

Quá trình kiểm tra một ứng cử viên được thực hiện như sau:

Ứng cử viên này sẽ đƣợc thêm vào lớp đang xét.

Sau đó sử dụng phƣơng pháp 2

- test để kiểm tra tập các khoảng cách lân cận gần nhất của lớp vừa thêm có phù hợp với phân bố khoảng cách mong đợi không.

Thuật toán DBCLASD

Procedure DBCLASD (database db)

Khởi tạo các điểm trong cơ sở dữ liệu db là các điểm chƣa đƣợc chia lớp Khởi tạo danh sách ứng cử viên rỗng

Khởi tạo danh sách ứng cử viên chƣa thành công rỗng Khởi tạo danh sách các điểm đã xử lý rỗng

For mỗi điểm p thuộc cơ sở dữ liệu db do If p là điểm chƣa đƣợc chia lớp then

Tạo lớp mới C và đƣa p vào lớp C; Khởi tạo các cấu trúc dữ liệu cho lớp C; Mở rộng lớp C bởi 29 điểm lân cận;

For mỗi điểm p1 thuộc lớp C do

Answers := retrieve_neighborhood(C, p1); Update_candidates(C, answers); End for Expand_cluster(C); End if End for

Mô phỏng thuật toán DBCLASD

Trong thuật toán có sự mở rộng lớp C thêm 29 điểm lân cận để thực hiện 2

- test, bởi 2

- test chỉ áp dụng đƣợc với lớp có kích thƣớc ít nhất là 30 điểm. Thuật toán có sử dụng một số hàm với ý nghĩa nhƣ sau:

Hàm retrieve_neighborhood(C, p1) trả về một danh sách các lân cận của p1 khi thực hiện truy vấn vòng tròn tâm p1 bán kính m với khoảng cách đến p1 sắp xếp theo thứ tự tăng dần.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ listOfPoints procedure retrieve_neighborhood(cluster C, point p)

tính bán kính m theo công thức (ii); (adsbygoogle = window.adsbygoogle || []).push({});

return tập các điểm trong vòng tròn tâm p bán kính m;

Mô phỏng hàm retrieve_neighborhood

Hàm update_candidates(C, answers) cập nhật danh sách các ứng cử viên bằng cách lấy ra từ answers những điểm chƣa đƣợc xử lý.

Procedure update_candidates(cluster C; listOfPoints points);

for các điểm trong tập listOfPoints do if điểm chƣa đƣợc xử lý then

Chèn điểm này vào cuối danh sách candidate; Đƣa điểm này vào danh sách đã xử lý;

end if end for

Mô phỏng hàm update_candidates

Hàm expand_cluster(C) thực hiện mở rộng lớp C bằng cách thêm vào các điểm trong danh sách ứng cử viên

Procedure expand_cluster(cluster C) Change := TRUE;

While change do

Change := FALSE;

while danh sách các candidate khác rỗng do

Lấy phần tử p ở đầu danh sách candidate và thêm vào lớp C; Loại p khỏi danh sách candidate;

if tập khoảng cách của C vẫn thoả mãn sự phân bố mong đợi then answers := retrieve_neighborhood(C, p); Update_candidates(C, answers); change := TRUE; else Loại p khỏi lớp C;

Chèn p vào danh sách các candidate chƣa thành công;

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

end while

Danh sách candidate := danh sách candidate chƣa thành công;

end while

Thủ tục expand_cluster

Một phần của tài liệu 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 (Trang 38 - 45)