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%가 이상치로 표시됩니다.
이 계산기를 사용하는 경우
- 데이터에 밀도가 다른 군집이 있을 때 — LOF는 Z-score나 Isolation Forest 같은 전역 방법이 놓칠 수 있는 지역 이상을 감지
- 다른 시험 스테이션의 측정값이 서로 다른 산포와 자연적 군집을 형성하는 다변량 품질 검사 시
- 정상 작동 모드가 서로 다른 특성 패턴과 밀도를 가진 설비 진동 또는 센서 데이터 분석 시
- Isolation Forest의 이상 검출 결과가 밀집 군집 근처의 이상을 놓치는 것 같을 때 — LOF의 밀도 기반 접근이 이 경우를 처리
- 전역 범위 내에 있더라도 지역 이웃 대비 비정상적인 데이터 포인트를 식별하기 위한 공정 문제 해결 시
흔한 실수
- k(이웃 수)를 너무 작게 설정하여 잡음에 민감 — 매우 작은 k값은 알고리즘을 불안정하게 만듦; k=20으로 시작하고 결과에 따라 조정
- 매우 고차원 데이터에 LOF 사용 — LOF는 고차원에서 의미가 줄어드는 거리 지표에 의존(차원의 저주); 먼저 차원 축소 고려
- LOF > 1인 모든 포인트를 이상으로 취급 — LOF > 1은 이웃보다 약간 낮은 밀도만을 의미; 오염 임계값 또는 의미 있는 LOF 절단값(예: LOF > 2) 사용
- LOF 적용 전 특성 스케일링 미실시 — 수치 범위가 큰 특성이 거리 계산을 지배; 모든 특성을 평균 0, 단위 분산으로 표준화
결과 해석 방법
- LOF ≈ 1.0 — 포인트가 이웃과 유사한 밀도; 지역 군집의 정상 구성원
- LOF 1.5-3.0 — 포인트가 이웃 대비 밀도가 낮은 영역에 있음; 군집 경계 또는 경미한 이상일 수 있음
- LOF > 3.0 — 포인트가 이웃보다 훨씬 낮은 밀도; 강한 지역 이상값으로 조사 필요
- LOF < 1.0 — 포인트가 이웃보다 밀도가 높은 영역; 촘촘한 군집 중심의 포인트에서 흔함
- 많은 포인트가 높은 LOF 점수를 보이면 데이터에 명확한 군집이 없을 수 있음 — LOF가 이 데이터셋에 적합한 방법인지 고려
관련 표준 및 참고문헌
- Breunig, Kriegel, Ng & Sander (2000), "LOF: Identifying Density-Based Local Outliers", ACM SIGMOD — 여기서 계산되는 LOF 점수를 정의한 원저 논문
- ISO 16269-4 — 데이터의 통계적 해석: 이상치의 검출과 처리, 플래그된 관측값의 처리 방식을 규정하는 표준
- ASTM E178 — 이상 관측값 처리 표준 실무로, 단변량 이상치 판단을 보완하는 고전적 표준
- Aggarwal, Outlier Analysis (Springer) — LOF 같은 밀도 기반 방법을 고립·거리 기반 대안과 비교하는 종합 참고서
자주 묻는 질문
이웃 개수(k)는 어떻게 선택하나요?
무난한 기본값으로 k=20에서 시작합니다. k가 작으면(5-10) 매우 국소적인 이상치까지 잡아내지만 잡음에 민감합니다. k가 크면(50 이상) 결과가 부드러워지지만 국소적으로 발생한 이상치를 놓칠 수 있습니다. 실무적으로는 여러 k 값을 시험해 같은 점이 일관되게 표시되는지 확인하는 방법이 유용합니다. 서로 다른 k 값에서도 계속 표시되는 이상치는 실제 이상일 가능성이 높습니다.
Isolation Forest 대신 LOF는 언제 사용하나요?
데이터에 밀도가 서로 다른 군집이 존재할 때 LOF를 사용합니다. LOF는 각 점을 국소 이웃과 비교하여 평가하기 때문입니다. 밀집 군집에서는 멀지만 희박한 군집에는 가까운 점은 정상일 수 있는데, 전역적 기법은 이런 점을 이상치로 표시하는 반면 LOF는 올바르게 처리합니다. 고차원 데이터이거나 LOF의 O(n²) 복잡도가 감당하기 어려워질 만큼 데이터가 매우 큰 경우에는 Isolation Forest를 사용합니다.