LOF 이상치 탐지

Local Outlier Factor를 사용한 이상치 탐지. Local Outlier Factor(LOF)를 사용하여 이웃 대비 데이터 포인트의 지역 밀도 편차를 측정합니다. 밀도가 현저히 낮은 포인트가 이상치로 분류됩니다.

Local Outlier Factor(LOF)를 사용하여 이웃 대비 데이터 포인트의 지역 밀도 편차를 측정합니다. 밀도가 현저히 낮은 포인트가 이상치로 분류됩니다.

LOF(지역 이상 요인)란?

국소 이상치 인자(LOF)는 한 점의 국소 밀도를 이웃들의 밀도와 비교하여 이상치를 식별하는 밀도 기반 이상 탐지 알고리즘입니다. 전역적 기법과 달리 LOF는 밀도가 서로 다른 군집이 섞여 있는 데이터에서도 이상치를 탐지할 수 있습니다. 어떤 점은 희박한 군집 안에서는 정상이지만 밀집한 군집 근처에서는 이상치일 수 있기 때문입니다.

이 알고리즘은 각 점의 k-최근접 이웃을 기준으로 도달 거리와 국소 도달 밀도(LRD)를 계산합니다. LOF 점수는 해당 점의 LRD를 이웃들의 평균 LRD로 나눈 비율입니다. LOF ≈ 1이면 이웃과 밀도가 비슷하다는 뜻이며(정상), LOF >> 1이면 밀도가 이웃보다 훨씬 낮다는 뜻입니다(이상치).

이웃 개수(k)는 국소성의 범위를 조절합니다. k가 작으면 매우 국소적인 구조에 집중하고, k가 크면 더 넓은 이웃 범위를 완만하게 반영합니다. 오염률은 LOF 점수 순위를 기준으로 이상치로 분류할 점의 비율을 결정합니다.

Formula: reach-dist(A,B) = max(k-dist(B), dist(A,B)) LRD(A) = 1 / (Σ reach-dist(A,Oᵢ) / k) LOF(A) = (Σ LRD(Oᵢ) / LRD(A)) / k LOF ≈ 1: normal, LOF >> 1: outlier

계산 예시

이웃 k=5인 경우: 밀집 군집에 있는 점 P₁은 LRD=10이고 이웃 5개의 평균 LRD=9.5입니다. LOF = 9.5/10 = 0.95로 정상입니다. 군집 가장자리에 있는 점 P₂는 LRD=2이고 이웃 평균 LRD=8입니다. LOF = 8/2 = 4.0으로 명백한 이상치입니다. 오염률=0.05이면 LOF 점수 상위 5%가 이상치로 표시됩니다.

이 계산기를 사용하는 경우

흔한 실수

결과 해석 방법

관련 표준 및 참고문헌

자주 묻는 질문

이웃 개수(k)는 어떻게 선택하나요?

무난한 기본값으로 k=20에서 시작합니다. k가 작으면(5-10) 매우 국소적인 이상치까지 잡아내지만 잡음에 민감합니다. k가 크면(50 이상) 결과가 부드러워지지만 국소적으로 발생한 이상치를 놓칠 수 있습니다. 실무적으로는 여러 k 값을 시험해 같은 점이 일관되게 표시되는지 확인하는 방법이 유용합니다. 서로 다른 k 값에서도 계속 표시되는 이상치는 실제 이상일 가능성이 높습니다.

Isolation Forest 대신 LOF는 언제 사용하나요?

데이터에 밀도가 서로 다른 군집이 존재할 때 LOF를 사용합니다. LOF는 각 점을 국소 이웃과 비교하여 평가하기 때문입니다. 밀집 군집에서는 멀지만 희박한 군집에는 가까운 점은 정상일 수 있는데, 전역적 기법은 이런 점을 이상치로 표시하는 반면 LOF는 올바르게 처리합니다. 고차원 데이터이거나 LOF의 O(n²) 복잡도가 감당하기 어려워질 만큼 데이터가 매우 큰 경우에는 Isolation Forest를 사용합니다.