Skip to content

juhee3953/machine-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

machine-learning-이상탐지(Anomaly Detection)

Credit Fraud || Dealing with Imbalanced Datasets 유럽 신용카드 거래 데이터셋(284,807건)에서 사기 탐지 모델을 구축하는 노트북. 핵심 과제는 극심한 클래스 불균형(사기 거래 = 0.172%)을 처리하는 것.

Logistic Regression K-Nearest Neighbors SVM Decision Tree NearMiss (언더샘플링) SMOTE (오버샘플링)

  1. Accuracy 대신 ROC-AUC, Recall, F1-Score를 사용하는 이유: scewed data- [사기 거래는 전체의 0.172%에 불과하기 때문에, 모델이 아무 생각 없이 "전부 정상"이라고 예측해도 정확도(Accuracy)가 99.83%가 나옵니다.]

  2. 데이터셋 구조 이해 데이터는 유럽 카드 거래 이틀치 284,807건으로 구성됩니다. V1~V28은 프라이버시 보호를 위해 PCA로 변환된 익명 피처이고, Time과 Amount만 원본 값입니다. Amount는 RobustScaler로 정규화하는데, 이 스케일러는 이상치에 강건해서 이상탐지 전처리에 특히 적합합니다.

  3. Plot별 핵심 해석 클래스 분포 막대그래프: Non-Fraud 막대가 Fraud 막대에 비해 압도적으로 높습니다. 이 시각화가 말하는 건 하나입니다. "이 데이터로 그냥 학습하면 모델은 사기를 배우지 않는다."

상관관계 히트맵 (Heatmap): 언더샘플링 후 균형 잡힌 데이터에서 그리면 V17, V14, V12가 Class와 강한 음의 상관을 보입니다. 즉 이 피처들의 값이 낮을수록 사기일 가능성이 높습니다. 원본 불균형 데이터에서는 이 패턴이 묻혀서 안 보입니다. 이것이 균형 조정의 핵심 가치입니다.

바이올린 플롯 (Violin Plot): 박스플롯의 5가지 요약 통계(최솟값, Q1, 중앙값, Q3, 최댓값)에 KDE(커널밀도추정)로 분포 모양까지 보여주는 시각화입니다. V14와 V12의 경우 사기(1)와 정상(0)의 바이올린이 거의 겹치지 않는데, 이는 이 피처들이 두 클래스를 잘 구분한다는 의미입니다. 이상탐지에서 이런 피처가 모델의 핵심 신호가 됩니다.

박스플롯 & 이상치 제거: V14, V12, V10에서 IQR 경계를 벗어난 극단값들을 제거합니다. 여기서 제거하는 "이상치"는 모델 학습을 방해하는 노이즈이고, 탐지하려는 "이상(사기)"은 별개입니다. 이 둘을 혼동하지 않는 것이 이상탐지 학습의 핵심 포인트입니다. 학습 곡선 (Learning Curve): 훈련 데이터 크기를 늘려가며 훈련 점수와 검증 점수의 수렴 여부를 봅니다. 두 곡선이 좁은 갭으로 수렴하면 적절한 학습, 큰 갭이 유지되면 과적합 신호입니다. ROC 곡선: FPR(False Positive Rate, 정상을 사기로 오분류)을 x축, TPR(True Positive Rate = Recall)을 y축으로 그립니다. 곡선이 좌상단에 가까울수록 좋습니다. 언더샘플링만 한 경우 훈련 시 좋은 ROC를 보여도 실제 불균형 데이터에서는 성능이 하락할 수 있습니다. 혼동 행렬: 이상탐지에서 가장 중요한 건 False Negative(FN)를 줄이는 것입니다. 사기를 정상으로 분류하면 실제 금전 피해가 발생하기 때문입니다. 반면 False Positive(FP)는 정상 거래를 막는 불편함을 주지만 FN보다는 덜 치명적입니다.

  1. NearMiss vs SMOTE 비교 NearMiss는 소수 클래스 샘플에 가장 가까운 다수 클래스 샘플을 선택해서 데이터를 줄이는 언더샘플링입니다. 빠르지만 원본 데이터의 상당 부분을 버립니다. SMOTE는 소수 클래스의 두 샘플을 잇는 선분 위에 새 합성 샘플을 생성하는 오버샘플링입니다. 원본 데이터를 전부 유지하면서 소수 클래스를 보강하기 때문에 일반적으로 NearMiss보다 더 좋은 성능을 냅니다. 이 노트북의 최종 결론도 SMOTE가 더 나은 일반화 성능을 보인다는 것입니다.

  2. 이상탐지 공부 시 이 노트북에서 가져갈 것 첫째, Recall과 AUC-ROC를 봐야 합니다. 둘째, 전처리(스케일링, 이상치 제거)가 모델 성능에 직접 영향을 줍니다. 셋째, 언더샘플링은 데이터 손실, 오버샘플링(SMOTE)은 노이즈 가능성이라는 트레이드오프가 있습니다. 넷째, 5-Fold Cross Validation을 반드시 써야 소규모 균형 데이터에서의 과적합을 잡을 수 있습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors