nhớ ngoài.
a. Tư tưởng thuật toán.
Công việc xử lý trong 5 bước đầu của thuật toán FindAllOutsD hầu hết cũng giống như đã mô tả ở thuật toán FindAllOutsM, nhưng ở bước 2 của
thuật toán FindAllOutsD không lưu lại p mà chỉ đưa ra một chú ý rằng trang lưu điểm p có chứa một số điểm ánh xạ tới ô Cq, điều này là quan trọng bởi vì cần biết những ô có các đối tượng thuộc các trang nào.
Ở bước 5.c.2 các ô trắng được tô màu vàng nếu tất cả các đối tượng trong ô đó là các phần tử ngoại lai, các đối tượng đó sẽ được nhận dạng ở bước 8 sau khi chúng được đọc từ các trang của chúng trong bước 6 của thuật toán. Trong bước 6 của thuật toán chỉ đọc các trang chứa ít nhất một điểm trắng hoặc một điểm vàng, điều này tương ứng với việc đọc tất cả các trang thuộc lớp 1, những điểm trắng và điểm vàng từ những trang đó sẽ được lưu vào các ô trắng Cw mà chúng ánh xạ tới, Cw chứa chính xác Countw đối tượng và Countw<M. Chuẩn bị cho quá trình tính toán khoảng cách thì bước 6.b.1 sẽ khởi tạo biến đếm các đối tượng thuộc tập các lân cận của các điểm trong Cw bằng số lượng các điểm trong CwUL1(Cw).
Trong bước 7, với mỗi ô trắng Cw, chúng ta sẽ đếm số lượng các đối tượng trong tập các lân cận của mỗi đối tượng p thuộc Cw bằng cách sử dụng các điểm đã được đọc và lưu vào các ô ở trong bước 6, ngay khi chúng ta tìm thấy p có hơn M đối tượng trong quá trình đếm tập các lân cận (S(p)) của p, thuật toán sẽ dừng lại và đánh dấu p là không ngoại lai, sau bước 7 này, có thể có một số ô trắng không yêu cầu đọc thêm bất kỳ một trang nào từ tập dữ liệu, do đó sẽ làm giảm số lượng trang cần đọc ở trong bước 9 của thuật toán. Việc đọc các trang có các đối tượng ánh xạ đến các ô không trắng cũng không vàng ở bước 9 là cần thiết, điều này tương đương với việc đọc tất cả các trang thuộc lớp 2 và đọc lại một số trang thuộc lớp 1 và tiếp tục số lượng tập các lân cận của mỗi điểm p trong mỗi ô trắng lại được đếm bằng cách sử dụng các đối tượng được đọc ở bước này. Nếu trong quá trình đếm mà tập các lân cận của điểm p vượt quá M thì ta đánh dấu p là không ngoại lai.
b. Mô tả thuật toán FindAllOutsD.
Thuật toán FindAllOutsD được mô tả như sau:
1. For (q=1; qm; q++) Countq=0;
2. For (mỗi đối tượng p thuộc T) {
a. Ánh xạ P tới ô Cq phù hợp nhưng không lưu P.
b. Countq++;
c. Đánh dấu ô Cq ánh xạ tới trang chứa điểm P. }
3. For (q=1; qm; q++) if (Coutnq>M) Cq = đỏ;
4. For (mỗi ô đỏ Cr)
C1= hồng; (trong đó có C1 là ô thuộc L1(Cr) và chưa được gán màu đỏ)
5. For (mỗi ô màu trắng Cw) do:
a. Countw2 = Countw + iL1(Cw)Counti ;
b. If (Countw2>M) Cw = hồng;
c. Else {
1. Countw3 = Countw2 + iL2(Cw)Counti;
2. If (Countw3≤M) Cw = vàng (tức là tất cả các điểm ánh xạ tới ô Cw đều là ngoại lai);
3. Else Sumw = Countw2; }
6. For (mỗi trang i chứa ít nhất một điểm trắng hoặc một điểm vàng) do
a. Đọc trang i;
b. For (mỗi ô trắng hoặc ô vàng Cq có các điểm ánh xạ tới trang i) do
For (mỗi đối tượng p trong trang i ánh xạ tới Cq) do
Lưu P vào Cq.
Kountp = Sumq
7. For (mỗi đối tượng p trong ô trắng Cw) do
For (mỗi ô trắng hoặc ô vàng CL L2 (Cw)) do For (mỗi đối tượng q CL) if (d(p,q) D)
{ Kountp++;
If (Kountp>M) đánh dấu p là không ngoại lai; xét điểm p tiết theo (goto 7) }
8. For (mỗi đối tượng q trong ô vàng) thông báo q là ngoại lai.
9. For (mỗi trang chứa ít nhất một điểm không trắng cũng không vàng và ánh xạ tới ô thuộc L2 của một số ô trắng C) do
a. Đọc trang i.
b. For (mỗi ô Cq L2 (C) không trắng cũng không vàng và có một số điểm trong trang i) do
For (mỗi đối tượng q trong trang i ánh xạ tới Cq) do For (mỗi ô trắng Cw L2 (Cq)) do
For (mỗi đối tượng p Cw) if ( d(p,q) D)
{Kountp++; if (Kountp>M) đánh dấu p là không ngoại lai;}
10.For (mỗi đối tượng p trong ô trắng) if not (p là không ngoại lai) thông báo p là ngoại lai.
c. Đánh giá độ phức tạp của thuật toán FindAllOutsD và so sánh với thuật toán Nested Loop.
Thuật toán Find AllOutsD cũng có độ phức tạp tuyến tính với N bởi các lý do giống tương tự như đã giải thích cho thuật toán FindAllOutsM, nhưng thuật toán FindAllOutsD tìm kiếm các phần tử ngoại lai trên các tập dữ liệu mà nó không phù hợp với bộ nhớ chính. Do tập dữ liệu lớn nên phải mất nhiều thời gian hơn để đọc dữ liệu từ ổ đĩa vào trong bộ nhớ chính ngay cả khi nếu dung lượng bộ nhớ có đủ. Liên quan tới vấn đề này, thuật toán FindAllOutsD có tính chất quan trọng, đó là tính chất mà chúng ta mong muốn khi khai thác các tập dữ liệu lớn nằm trong bộ nhớ ngoài.
Tính chất 1: Thuật toán FindAllOutsD yêu cầu nhiều nhất là 3 lần đọc toàn bộ
tập dữ liệu.
Chứng minh: Quá trình ánh xạ ban đầu yêu cầu một lần đọc tập dữ liệu.
Gọi n là tổng số trang trong tập dữ liệu đã cho và n1, n2, n3 lần lượt là số trang thuộc lớp 1, lớp 2, lớp 3.
Ta có n = n1+n2+n3.
Như ta đã trình bày ở phần 2.3.3.1 trước, tổng số trang được đọc trong quá trình phân tích và tính toán khoảng cách giữa các cặp điểm là n1+n2+n1, tổng số này rõ ràng là nhỏ hơn 2*n. Do đó, toàn bộ thuật toán yêu cầu không quá 3 lần đọc toàn bộ tập dữ liệu.
Thứ nhất, tổng số n1+n2+n1 có thể nhỏ hơn n. Ví dụ nếu n1<n3 thì tổng n1+n2+n1 < n, nghĩa là trong khi một số trang có thể được đọc tới ba lần thì tổng số trang đọc là tương đương với không nhiều hơn 2 lần đọc tập dữ liệu.
Thứ 2, thuật toán giả sử rằng:
- Có đủ bộ nhớ trung gian để lưu các điểm trắng, rõ ràng đây không phải là một giả thiết mạnh bởi vì về cơ bản là không có quá nhiều ô trắng.
- Chỉ có một trang thuộc lớp 1 và 2 được lưu trong bộ nhớ trung gian, nhiều không gian bộ nhớ có thể lưu được nhiều trang thuộc lớp 1 cùng một lúc và điều này làm giảm được số lượng trang cần đọc lại của lớp 1.
Chúng ta hãy xem xét lại thuật toán Nested Loop đã được mô tả ở phần 2.2, thuật toán này phân chia tập dữ liệu nằm ở bộ nhớ ngoài thành các khối và xử lý vòng lặp lồng nhau để thực hiện. Chúng ta sẽ đi chứng minh thuật toán FindAllOutsD bảo đảm số lần đọc toàn bộ tập dữ liệu là thấp hơn thuật toán Nested Loop với các tập dữ liệu đủ lớn.
Tính chất 2: Nếu có một tập dữ liệu được phân chia vào trong n =[100/(b/2)]
khối logic một bộ nhớ trung gian cỡ bằng b% cỡ của cơ sở dữ liệu và một khối logic bao gồm nhiều trang thì trong trường hợp chung, tổng số khối yêu cầu đọc của thuật toán Nested Loop là n+(n-1)*(n-2). Như vậy, số lần đọc tập dữ liệu ít nhất là (n-2) lần nhưng không nhiều hơn (n-1) lần.
Chứng minh: Theo thuật toán Nested Loop thì:
Đợt 1: (tương ứng với một khối trong mảng thứ nhất) có n khối được đọc
Đợt 2: Có n-2 khối được đọc vì đã có 2 khối nằm trong bộ nhớ do đợt 1 còn lưu lại trong hai mảng.
Đợt k: Có n-2 khối được đọc vì đã có 2 khối nằm trong bộ nhớ do đợt k còn lưu lại trong hai mảng.
...
Đợt n: Có n-2 khối được đọc vì đã có 2 khối nằm trong bộ nhớ do đợt n-1 còn lưu lại trong hai mảng.
Do đó, tổng số khối được đọc là: n+(n-1)*(n-2)
Mặt khác, theo giả thuyết một tập dữ liệu có n khối mà tổng số khối được đọc là n+(n-1)*(n-2). Vậy số lần đọc tập dữ liệu là T=(n+(n-1)*(n- 2))/n=n-2+2/n.
Từ đây, ta thấy n-2<T<n-1 với n2
Tóm lại, thuật toán Nested Loop yêu cầu nhiều lần đọc tập dữ liệu hơn là thuật toán FindAllOutsD
Ví dụ với một tập dữ liệu lớn được chia ra làm 10 khối thì theo tính chất 2 ta có thuật toán Nested Loop cần từ 8 đến 9 lần đọc tập dữ liệu, tức là thuật toán Nested Loop đọc tập dữ liệu nhiều hơn 5 đến 6 lần so với thuật toán FindAllOutsD.
CHƯƠNG 3: XÁC ĐỊNH CÁC PHẦN TỬ NGOẠI LAI CỤC BỘ DỰA VÀO MẬT ĐỘ
Trong chương này chúng tôi trình bày định nghĩa lôgic và chặt chẽ hơn về phần tử ngoại lai khi xem xét các đối tượng trong tập dữ liệu dựa trên mật độ theo cách nhìn địa phương, tiếp theo là trình bày cấp độ ngoại lai và các tính chất của từng đối tượng, sau đó đưa ra ý nghĩa của các phần tử ngoại lai và cuối cùng chúng tôi trình bày và đánh giá độ phức tạp của thuật toán xác định giá trị LOF. Cụ thể chúng tôi sẽ thảo luận về một số vấn đề có ý nghĩa hơn khi kết gán mỗi đối tượng với một cấp độ ngoại lai của nó, cấp độ này được gọi là yếu tố ngoại lai cục bộ (Local Outlier Factor - LOF) của một đối tượng. Từ "cục bộ" trong LOF có nghĩa là cấp độ phụ thuộc vào cách cô lập của đối tượng đối với các lân cận xung quanh đối tượng đó. Cũng trong chương này chúng tôi sẽ trình bày và phân tích chi tiết yếu tố ngoại lai cục bộ LOF cùng với các tính chất liên quan, bằng cách sử dụng các tập hợp dữ liệu trong thế giới thực và chúng ta sẽ giải thích rằng yếu tố ngoại lai cục bộ LOF có thể được sử dụng để tìm kiếm các phần tử ngoại lai xuất hiện với một ý nghĩa nào đó, nhưng mặt khác lại không được xác định chúng bằng các cách tiếp cận hiện nay.