본문 바로가기

Data Analysis/Preprocessing6

6. 데이터 불균형 처리 (Data Imbalance Handling) 데이터 불균형 처리 (Data Imbalance Handling)1. 개요분류 문제(Classification)에서 특정 클래스(레이블)의 데이터 수가 심하게 불균형할 경우 발생주로 구매/비구매, 사기/정상거래, 질병/비질병 등 극소수 클래스를 예측할 때 문제가 됨모델이 다수 클래스를 과적합(overfit)하거나, 소수 클래스를 무시하게 되어 성능 악화2. 해결 방법2-1. 데이터 레벨 접근Oversampling: 소수 클래스 데이터를 복제하거나, 새로운 데이터를 생성하여 클래스 균형 맞추기단순 복제 (Random Oversampling)SMOTE (Synthetic Minority Over-sampling Technique)ADASYN 등Undersampling: 다수 클래스 데이터를 임의로 제거하여 .. 2025. 4. 26.
5. 피처 인코딩 (Feature Encoding) 피처 인코딩 (Feature Encoding)1. 개요모델이 문자형, 범주형 데이터를 직접 이해하지 못하므로 수치형으로 변환 필요범주 수, 순서 유무, 희소성 등 데이터 특성에 따라 인코딩 방식 선택특히 트리 계열 vs 선형 계열 모델에서 인코딩 전략이 달라짐2. 인코딩 종류2-1. 라벨 인코딩 (Label Encoding)명목척도(Nominal) 또는 서열척도(Ordinal) 모두 사용 가능하지만, 주의 필요범주형 데이터를 정수로 치환 (예: A → 0, B → 1, C → 2)순서가 의미 없는 경우엔 비추천 (모델이 잘못된 순서를 학습할 수 있음)from sklearn.preprocessing import LabelEncoder# 자동 라벨 인코딩label_encoder = LabelEncoder().. 2025. 4. 26.
4. 피처 스케일링 (Feature Scaling) 피처 스케일링 (Feature Scaling)1. 개요피처마다 값의 단위나 범위가 다를 경우, 특정 모델은 이를 민감하게 반영하게 됨특히 거리 기반 모델(KNN, SVM), 경사 하강법 기반 모델(로지스틱 회귀, 신경망 등)에서는 **스케일 조정이 필수이상치, 정규분포 여부 등을 고려하여 적절한 스케일러를 선택해야 함2. 스케일링 종류2-1. MinMaxScaler$$x' = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}}$$모든 데이터를 0~1 사이로 정규화최소값을 0, 최대값을 1로 맞추는 방식 → 범위 유지이상치에 매우 민감이미 범위가 정해진 피처(나이, 점수 등) 또는 딥러닝 전처리에서 자주 사용from sklearn.preprocessin.. 2025. 4. 24.
3. 피처 변환 (Feature Transformation) 피처 변환 (Feature Transformation)1. 개요피처의 분포가 비대칭적이거나, 특정 값에 몰려 있는 경우 → 모델 성능 저하 가능로그/루트/Box-Cox/Yeo-Johnson 등의 변환을 통해 분포를 안정화시켜 예측 정확도 향상정규분포를 가정하는 모델이나 이상치에 민감한 스케일링 전처리 전 자주 사용2. 변환 종류2-1. 로그 변환 (Log Transformation)양수 데이터에서만 사용 가능큰 값을 줄이고 작은 값을 확대 → 분포를 정규분포에 가깝게 조정import numpy as npdf['col'] = np.log1p(df['col']) # log(1 + x), 0도 처리 가능2-2. Box-Cox 변환$$x' =\begin{cases}\frac{x^\lambda - 1}{\lam.. 2025. 4. 24.