Mahalanobis
Như đã biết dữ liệu để đào tạo trong mô hình tương ứng với các hành vi bình thường từ đó có thể tính ra được Trung vị và Độ lệch chuẩn của dữ liệu bình thường. Khoảng cách Mahalanobis giữa điểm dữ liệu p và Trung vị µ được tính như sau:
Trong đó tổng Σ là ma trận hiệp phương sai của các dữ liệu bình thường. Tương tự như phương pháp trước, ngưỡng sẽ được tính dựa trên những điểm có khoảng cách gần nhất tính từ giá trị của các dữ liệu bình thường và nó bằng 2% trong tổng số các điểm. Mọi điểm dữ liệu kiểm tra có khoảng cách tới trung vị của các dữ liệu đào tạo bình thường lớn hơn ngưỡng đã định sẽ được xếp vào dạng phần tử dị biệt.
Việc tính khoảng cách theo hệ mét Ơclit chuẩn không phải lúc nào cũng chính xác, nhất là khi các dữ liệu được phân bố giống như hình minh họa dưới đây. Bằng cách sử dụng hệ mét Ơclit, khoảng cách giữa p2 và điểm lân cận gần nó nhất lớn hơn khoảng cách từ điểm p1 đến điểm lân cận gần nó nhất. Rõ ràng trong trường hợp này, phương pháp dựa trên khoảng cách Mahalanobis sẽ hiệu quả hơn phương pháp hệ mét Ơ-cơ-lit. [5]
Hình 3.4 : Ưu điểm của phương pháp dựa trên khoảng cách Mahalanobis khi tính các khoảng cách.
3.2.2.3 Thuật toán LOF
Ý tưởng chủ đạo của phương pháp này là gắn cho mỗi mẫu dữ liệu 1 mức độ dị biệt nào đó, được gọi là nhân tố dị biệt địa phương ( Local Outlier Factor). Như vậy đối với từng mẫu, mật độ phần tử lân cận đóng một vai trò đặc biệt. Một mẫu không phải được phân loại là “dị biệt” hay “không dị biệt” mà được đánh giá là mức độ “dị biệt” như thế nào, tùy theo giá trị LOF của mẫu đó. [7]
Ký hiệu k-dis(x) là khoảng cách đến phần tử lân cận thứ k của mẫu x
Ký hiệu Nk-dis(x) là số lượng phân tử lân cận của x có khoảng cách tới x bé hơn k-dis(x).
Khoảng cách tiếp cận trung bình của một mẫu x đối với một mẫu y, ký hiệu là R – dis(x,y) được tính như sau:
Hình 3.5 : Ví dụ khoảng cách R-dis (reach-dist)
Chẳng hạn có 7 phần tử như hình 3.5, R – dis(p1,O) và R – dis(p2,O) được tính trong trường hợp k = 3.
Ta có thể tính được giá trị LOF của một phần tử p như sau:
Với : Hàm lrd( ) chỉ mật độ tiếp cận địa phương của một mẫu, và được tính dựa trên tính nghịch đảo của R – dis(p,o) và MnPts ( số lượng mẫu tối thiểu) các phần tử lân cận của mẫu p.
Thuật toán tính LOF cho các mẫu dữ liệu được thực hiện qua nhiều bước: Tính k – dis(p) cho mẫu p
Tính R – dis(p,o) cho mẫu o Tính hàm lrd( )
Tính LOF(p)
Chúng ta sẽ áp dụng thuật toán trên cho một ví dụ nhỏ cụ thể như sau : Gọi D là cơ sở dữ liệu có 4 đối tượng ký hiệu lần lượt là P1, P2, P3 và P4 có các khoảng cách P1P4 = 4, P1P3 = 3, P1P4 = 7, P2P3 = 5, P2P4 = 6 và P3P4 = 8 thu được nhờ một hàm tính khoảng cách đã biết và xét với MinPts(k) = 2. [8]
Bước 1: tính kdistance của p:
Mục đích tính kdistance của p là xác định các lận cận của p. Định nghĩa đơn giản, kdistance của p là khoảng cách lớn nhất từ đối tượng p khi mọi đối tượng trong tập dữ liệu được xem xét có ít nhất k lân cận. kdistance của p được ký hiệu là kdistance(p) và thu được bằng cách :
Đầu tiên, tính tất cả các khoảng cách của tất cả các đối tượng từ P1 qua một hàm tính khoảng cách. Các khoảng cách P1P2 = 4, P1P3 = 3, P1P4 = 7
Tiếp theo, chọn ra 2 khoảng cách nhỏ nhất không trùng nhau từ P1. Tất cả các khoảng cách từ P1 được sắp xếp và 2 khoảng cách nhỏ nhất được chọn. Min(P1P2=4,P1P3=3,P1P4=7)
Cuối cùng, giá trị lớn nhất trong 2 khoảng cách nhỏ nhất được lựa chọn ở trên là kdistance của P1. Do đó kdistance(P1) = max(3,4), suy ra kdistance(P1) = 4. kdistance của các đối tượng còn lại được tính tương tự.
Bước 2: Tìm lân cận kdistance của p:
Lân cận kdistance của p được ký hiệu là ( Nk(p) ), chứa tất cả các đối tượng với khoảng cách không lớn hơn kdistance(p). Cơ sở cho việc tính ra lân cận kdistance là tìm các lân cận gần nhất của mỗi đối tượng. Ví dụ lân cận kdistance của P1 bao gồm P2 và P3 từ kdistance(P1) = 4 và khoảng cách của P2, P3 từ P1 không lớn hơn 4( P1P2 = 4, P1P3 = 3).
Bước 3: Tính khoảng cách có thể tới được của p ( reachability distance)
Khoảng cách có thể tới được của đối tượng p với đối tượng o là khoảng cách lớn hơn trong 2 khoảng cách distance(p,o) và kdistance(o). reachdistk(p,o) = max{kdistance(o), distance(p,o)}. Mục đích là đảm bảo cho tất cả các đối tượng trong một lân cạn là đồng nhất. Thêm vào đó, LOF trở nên ổn định khi các đối tượng trong một lân cận là đồng nhất mặc dù MinPts(k) thay đổi. Sự thay đổi của khoảng cách có thể tới được (reachability distance) có thể điều khiển bằng việc chọn giá trị k lớn. Khoảng cách có thể tới của P1 được tính toán theo các bước: Đầu tiên, xác định lân cận kdistance của P1 ( Nk(P1) = (P2,P3)). Khoảng cách có thể tới của P1 được tính cùng mối liên hệ tới P2 và P3 khi chúng là lân cận của P1. Với P2 trong lân cận của P1: reachdistk(P1,P2) = max(kdistance(P2),distance(P1,P2)) = max(5,4) =5. Với P3 trong lân cận của P1: reachdistk(P1,P3) = max(kdistance(P3),distance(P1,P3)) =
max(5,3) =5. Do đó reachdistk(P1,o) = (5,5) nó bao gồm các khoảng cách tới được của các lân cận của P1.
Bước 4: Tính mật độ tới được địa phương của p - local reachbility density
Mật độ tới được địa phương của một đối tượng p, được ký hiệu là lrdk(p) là nghịch đảo của giá trị trung bình các khoảng cách tới được từ lân cận kdistance của p. Nó cung cấp một cách so sánh giữa các khoảng cách tới được.
Mật độ tới được địa phương của P1 được tính như sau : lrdk(P1) = 1/{(5+5)/2} = 2/10, khi (5,5) là khoảng cách tới được địa phương của P1 và số các lân cận của kdistance là 2. Ta cũng có lrdk(P2) = 2/9, lrdk(P3) = 2/9, lrdk(P4) = 2/13.
Bước 5: Nhân tố dị biệt địa phương của p
Nhân tố dị biệt địa phương là tỷ số đánh giá một đối tượng là dị biệt hoặc không trong lân cận của nó. Nhân tố dị biệt địa phương của một đối tượng được ký hiệu là LOFk(p) là trung bình các tỷ số của mật độ tới được địa phương của p và k lân cận gần nhất của p.
Ưu điểm của thuật toán LOF so với thuật toán dựa trên khoảng cách được thể hiện qua ví dụ sau:
Hình 3.6 Ưu điểm của phương pháp LOF
Nếu trong cách tiếp cận khoảng cách thì mẫu p2 không bị coi là tách biệt do khoảng cách từ p2 đến C2 gần hơn so với từ C1 đến C2. Trong khi đó với cách tiếp cận LOF, cả p1, p2 đều là phần tử dị biệt.
Hạn chế lớn nhất của thuật toán LOF nằm trong việc tính toán khoảng cách có thể tính được (reachability distance) được định nghĩa reachdistk(p,o) = max{kdistance(o),distance(p,o)}. Việc tính toán khoảng cách reachability của p bao gồm việc tính toán khoảng cách của tất cả các đối tượng trong lân cận của p, sau đó so sánh từng khoảng cách này với kdistance của lân cận đó, việc này sẽ rất tốn kém khi MinPts lớn. Hơn thế nữa, LOF phải tính toán cho tất cả các đối tượng trước khi một vài điểm dị biệt được phát hiện. Đây không phải là điều chúng ta mong muốn khi các phần tử dị biệt chỉ là một phần rất nhỏ trong toàn bộ tập dữ liệu.