데이터분석데브코스 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 알고리즘 작동 과정

  1. 무작위 서브샘플 추출 (여러 개)
  2. 각 서브셋으로 Isolation Tree 생성
  3. 특성(feature)와 임의의 분할값을 기준으로 반복 분할
  4. 각 데이터 포인트가 고립될 때까지 걸린 분할 깊이를 저장
  5. 모든 Tree에서 평균 깊이 계산
  6. 깊이가 얕을수록 이상치 점수 높게 부여
  7. 이상치 점수가 특정 임계값보다 높으면 → 이상치로 판단

📊 고립 깊이 예시 (간단화)

포인트 평균 깊이 해석

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