섹션별 상세
outlier_counts = (np.abs(z_scores) > 3.5).sum(axis=1)
outliers = outlier_counts >= 2단일 변수의 무작위 극단값에 의한 오탐지를 줄이기 위해 최소 2개 이상의 특징에서 이상치가 발견된 경우만 필터링하는 코드
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
iforest = IsolationForest(contamination=0.05, random_state=42)
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.05)Scikit-learn을 사용하여 Isolation Forest와 LOF 모델을 설정하고 오염률을 5%로 지정하는 예시
median = np.median(data, axis=0)
mad = np.median(np.abs(data - median), axis=0)
robust_z = 0.6745 * (data - median) / mad중앙값과 MAD를 활용하여 이상치에 강건한 Robust Z-Score를 계산하는 로직
from sklearn.preprocessing import RobustScaler
scaled_parts = []
for wine_type in ['red', 'white']:
subset = df[df['type'] == wine_type][features]
scaled_parts.append(RobustScaler().fit_transform(subset))레드 와인과 화이트 와인의 화학적 기준 차이를 반영하기 위해 타입별로 분리하여 스케일링을 수행하는 과정
용어 해설
- 자카드 유사도(Jaccard Similarity)
- — 두 집합 사이의 유사도를 측정하는 지표로, 합집합 대비 교집합의 비율로 계산한다. 이상치 탐지 실험에서는 서로 다른 기법들이 얼마나 동일한 샘플을 지목했는지 비교하여 기법 간의 일치도를 정량화하는 용도로 사용된다.
- 아이솔레이션 포레스트(Isolation Forest)
- — 데이터를 무작위로 분할하여 고립시키는 과정에서 이상치일수록 적은 분할 횟수만으로도 고립된다는 원리를 이용한 알고리즘이다. 다차원 데이터에서 분포 가정 없이 효과적으로 작동하며 대규모 데이터셋에서도 효율적이다.
- 지역 이상치 요인(Local Outlier Factor (LOF))
- — 주변 이웃 데이터와의 밀도를 비교하여 상대적으로 밀도가 낮은 샘플을 이상치로 판별하는 기법이다. 전역적인 분포에서는 정상으로 보이지만 국소적 맥락에서 튀는 데이터를 찾는 데 유리하여 밀도가 다른 클러스터가 섞인 데이터에 적합하다.
- 로버스트 Z-점수(Robust Z-Score)
- — 평균 대신 중앙값을, 표준편차 대신 중앙값 절대 편차(MAD)를 사용하여 계산하는 통계적 수치이다. 극단값에 민감한 표준 Z-Score의 단점을 보완하여 이상치가 포함된 데이터셋에서도 안정적인 기준을 제공한다.
- 오염률(Contamination Rate)
- — 모델이 이상치로 분류할 데이터의 예상 비율을 설정하는 파라미터이다. 실제 데이터의 오염 정도를 미리 알고 있을 때 유용하지만, 고정된 할당량(Quota)으로 작동하므로 실제 이상치 수와 무관하게 설정된 비율만큼 결과를 내놓는 특성이 있다.
기술
- Python
- Scikit-learn
- NumPy
- Pandas
- Isolation Forest
- LOF
활용 사례
- 데이터 클렌징
- 부정 탐지(Fraud Detection)
- 제조 공정 이상 감지
- 품질 관리
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
