ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Anomaly Detection] Local Outlier Factor (LOF)
    Learn/머신러닝 2022. 8. 10. 17:17

    # 개요

    - 한 객체 주변 데이터 밀도를 고려한 이상치 탐지 알고리즘

    - 정상 객체는 주변에 데이터가 많이 존재하고, 불량 객체는 단독으로 존재한다는 가정

     

    1. K-distance of object p 

    - 자기 자신(p)을 제외하고 k번째로 가까운 이웃과의 거리

     

    2. K-distance neighborhood of object p(Nk(p))

    - k번째로 가까운 이웃과의 거리를 원으로 표현할 때, 원 안에 포함되는 모든 객체들의 개수

    - 커트라인에 걸린 동률인 것도 다 포함된다. 

    - 실제 계산때는 모든 점에 대해 거리를 다 구하고 sorting이 필요하다. 

     

    3. reachability Distance (Reachability distance_k(p, o))

    ①o를 기준으로 k번째 가까운 이웃과의 거리(k-distance of o)②o와 p사이 거리 간의 최대 값

    - p기준이 아니라 o기준임에 유의

    아래와 같이 둘 다 이상치가 아닐 경우 d(p, o)에 비해 K-distance of o가 그리 크지 않고 둘 다 짧다. 

    아래와 같이 p가 이상치일 경우 d(p, o)가 K-distance of o에 비해 매우 크다. 

     

    4. Local reachability density of object p(lrd_k(p))

    - 여러 reachability distance를 하나의 지표로 계산한 값

        > 분자: 2번에서 구한 것, 분모: 3번에서 구한 것

        > 원 안에 들어간 점이 많을 수록 분자가 커짐

        > 밀도가 높으면 분모가 작아짐 --> lrd 값은 커짐 --> 정상

     

    5. Local Outlier Factor of object p (lrd_k(p))

    - 자기 자신(p)의 최종 Local Outlier Factor 값을 계산

    Case 1. 정상 데이터이고 모여있음

    p, o 주변 밀도 모두 높음 >> lrd_k(o), lrd_k(p) 모두 큼 >> 1근방의 LOF

    p주변 밀도 높음 >> lrd(p) 큼
    o주변 밀도 높음 >> lrd(o) 큼

    Case 2. 이상치라서 떨어져있음

    p 주변 밀도는 낮고, o 주변 밀도는 높음 >> lrd_k(p)는 작고 lrd_k(p)가 큼 >> 큰 LOF (1보다 큼)

    p주변 밀도 낮음 >> lrd(p) 작음

     

    o주변 밀도 높음 >> lrd(o) 큼

    Case 3. 정상 데이터인데 다소 듬성듬성함

    p, o 주변 밀도 둘 다 낮음 >> 작은 lrd_k(p), lrd_k(o) >> 1근방의 LOF

    p주변 밀도 낮음 >> lrd(p) 작음
    o주변의 밀도 낮음 >> lrd(o) 작음

     

    - 정상 데이터들은 1점대의 스코어를 가짐.

    - 위 그림에서 2점대 포인트들은 정상 데이터와 비슷한데 다소 LOF가 큼

      >> 밀집된 군집 옆에서는 조금만 떨어져도 LOF가 높게 나옴

     

    # 이슈 (생각해볼 것)

    - K를 어떤 값으로 정할까?

        >> 크게 민감하지 않으면 좋다. (Robustness)

     

    - LOF가 어떤 값 보다 커야 anomaly로 정의할까? (thresholding)

        >> 이상치를 몇 개 찾을지 정하는 방법도 있음

     

    - 서로 다른 데이터셋에서 각각 2.1의 LOF값을 가지는 관측치들은 모두 동일하게 anomaly인가? (또는 정상인가?)

     

    - 계산복잡도

        >> k-NN같이 거리를 구해야하는 알고리즘은 거리를 다 구하고 sorting도 해야하므로 복잡도가 크다. 

     

    - 고차원

        >> 고차원에서는 LOF가 잘 안맞다. 

        >> 차원축소 활용

     

     

    참고: https://youtu.be/wADcqMdpuv4

    'Learn > 머신러닝' 카테고리의 다른 글

    [Anomaly Detection] SVM, SVDD  (1) 2022.08.11
    [Anomaly Detection] Isolation Forest  (0) 2022.08.11
    [Anomaly Detection] 개요, 확률 분포 기반  (0) 2022.08.10
    Pandas 2부  (0) 2021.05.26
    Pandas 1부  (0) 2021.05.25

    댓글

Designed by Tistory.