데이터분석데브코스 8/이론
8 - 18. Isolation Forest
DataJ
2025. 5. 28. 23:29
🧠 1. 이상 탐지(Anomaly Detection)란?
- 이상 탐지는 일반적인 패턴에서 벗어난 이상치(outlier), 비정상적 사례를 탐지하는 과정
- 활용 분야:
- 보안: 계좌 해킹 시도, 비정상 로그인
- 금융: 부정 거래 감지
- 제조/의료: 결함 탐지, 이상 신호 파악
🧮 2. 전통적 이상 탐지 방법
방법 설명
IQR (사분위수 범위) | Q1 - 1.5×IQR 또는 Q3 + 1.5×IQR을 벗어난 값을 이상치로 판단 |
Z-Score | 평균에서 얼마나 떨어졌는지(표준편차 기준) 계산. 일반적으로 Z > 3이면 이상치 |
✅ 장점: 간단하고 해석 쉬움
❌ 단점: 데이터 분포가 비정규거나 비선형 구조일 경우 부정확
💡 3. 머신러닝 기반 이상 탐지 필요성
전통 방식의 한계 머신러닝 방식의 이점
단순 임계치 기준 | 복잡한 패턴 학습 가능 |
비대칭/고차원에서 부정확 | 다양한 변수 고려 가능 |
통계적 오차 많음 | 사용자/산업 패턴 학습 |
📌 예시:
- 외국 여행 시 카드 사용 → 전통 방식: 이상치 처리 / 머신러닝: 정상 패턴으로 인식
🌲 4. Isolation Forest 개념 정리
🔍 핵심 아이디어
"이상치는 덜 고립된 게 아니라 더 쉽게 고립된다."
- 정상 데이터는 밀집된 고밀도 영역에 위치 → 많은 분할 필요
- 이상치는 희소 영역에 위치 → 적은 분할로 고립 가능
📌 용어 정리
- 고립(Isolation): Decision Tree처럼 반복 분할을 통해 데이터를 나누는 과정
- 깊이(depth): 고립되기까지 걸리는 Tree depth → 짧을수록 이상치일 가능성 높음
⚙️ 5. Isolation Forest 알고리즘 작동 과정
- 무작위 서브샘플 추출 (여러 개)
- 각 서브셋으로 Isolation Tree 생성
- 특성(feature)와 임의의 분할값을 기준으로 반복 분할
- 각 데이터 포인트가 고립될 때까지 걸린 분할 깊이를 저장
- 모든 Tree에서 평균 깊이 계산
- 깊이가 얕을수록 이상치 점수 높게 부여
- 이상치 점수가 특정 임계값보다 높으면 → 이상치로 판단
📊 고립 깊이 예시 (간단화)
포인트 평균 깊이 해석
A | 2.0 | 매우 얕게 고립됨 → 이상치 가능성 높음 |
B~F | 6.2~7.8 | 일반적인 분포 내 데이터 → 정상 |
🔧 6. 주요 하이퍼파라미터 설명
파라미터 설명
n_estimators | 생성할 Isolation Tree의 수 (트리가 많을수록 안정성 증가하지만 시간·메모리↑) |
max_samples | 각 트리에 사용할 데이터 샘플 수. 너무 작으면 성능↓, 너무 크면 계산 비용↑ |
contamination | 데이터셋 내 이상치 비율을 의미 (ex. 0.1 → 10%)비율을 알 수 없을 땐 'auto' 사용 |
🧪 7. Python 코드 예제 (scikit-learn)
from sklearn.ensemble import IsolationForest
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 예제용 데이터 생성
np.random.seed(42)
X = np.random.randn(300, 2)
X[:20] += 6 # 이상치
# 모델 정의 및 학습
model = IsolationForest(n_estimators=100, max_samples='auto', contamination=0.07, random_state=42)
model.fit(X)
# 예측: -1은 이상치, 1은 정상치
pred = model.predict(X)
# 시각화
plt.scatter(X[:, 0], X[:, 1], c=pred, cmap='coolwarm')
plt.title("Isolation Forest: Anomaly Detection")
plt.show()
📏 8. 이상치 탐지 평가 방법
① 정답이 있을 경우 (지도 방식 평가) 분류처럼
- 1로 분류된 데이터를 실제 이상치 레이블과 비교
- 사용 가능한 지표:
- 정확도(Accuracy): 전체 중 맞춘 비율
- 정밀도(Precision): 이상치로 예측한 것 중 실제 이상치 비율
- 재현율(Recall): 실제 이상치 중 올바르게 예측한 비율
- F1 점수: 정밀도와 재현율의 조화 평균
② 정답이 없을 경우 (비지도 방식 평가)
- 시각화를 통해 전문가가 해석
- 또는 도메인 지식을 활용한 후속 분석 필요
✅ 사용 시 주의사항 & 팁
항목 설명
데이터 전처리 | 이상치 탐지 이전에 스케일링 또는 이상값 영향 제거 필요 |
contamination | 명확한 이상치 비율을 모를 경우 'auto'로 설정 권장 |
분포 특성 파악 | 데이터가 비대칭 또는 고차원일 경우 Isolation Forest이 특히 효과적 |
해석 방식 | 이상치로 분류되었다고 해서 반드시 "이상"은 아님 → 도메인 전문가 판단 병행 필요 |
📝 정리 요약
항목 내용
목적 | 고립을 통한 이상치 탐지 |
특징 | 빠르고, 고차원에서도 효과적 |
원리 | 이상치는 적은 분할로 쉽게 고립된다 |
평가 방법 | 지도학습 지표 or 시각화 기반 검토 |
주요 파라미터 | n_estimators, max_samples, contamination |