주제: 불균형 데이터 처리 & 전처리 실무 흐름 재정립
1. 불균형 데이터 처리 기법의 적용 시점
SMOTE, class_weight는 반드시 train 데이터에만 적용해야 한다.
- test/validation은 모델이 한 번도 보지 못한 상태여야 성능 평가가 의미 있다.
2. train/test 나누기 전에 전처리? 그건 실수!
- 모델링용 전처리는 반드시 train/test split 이후
- 적용 순서:
- train/test 나누기
- train에
fit (스케일링, 인코딩, 결측치 처리 등)
- test에는 train 기준으로
transform만 적용
3. 가중치 직접 설정은 ‘조작’이 아니라 전략
- 클래스 비율이 0:1 = 1:6인 상황에서
class_weight = {0: 1, 1: 0.175}는 매우 적절
- 중요한 건 → “왜 이 비율을 썼는지” 설명할 수 있는 근거
4. 이미 전처리한 데이터에서 리커버하는 방법
- 조원들과 결측치/인코딩 등 일부 전처리가 완료된 상태라면,
→ 지금이라도 train/test 나눈 후, SMOTE 및 모델 학습은 train 기준으로만 진행
- SMOTE는 여전히 적용 가능. 단, 반드시
train에만!
5. 실무에서 자주 실수하는 포인트들
- ❌ train/test split 전에 SMOTE
- ❌ test에도
fit_transform 적용
- ❌ accuracy만 믿고 성능 평가
- ❌ random_state 고정 안 함
→ ✅ 이제는 모두 인지하고 예방 가능!
🔧 내 작업에 바로 적용한 것
- LendingClub 데이터에서 새롭게
train/test split 적용
- class imbalance 비율 기반으로
class_weight = {0: 1, 1: 0.175} 직접 지정
- 향후 전처리 구조를 train 기준으로 리팩토링할 계획 수립
✨ 오늘의 성장 포인트
“전처리는 코드가 아니라 철학이다.”
→ 분석 흐름을 단순히 기술이 아니라 논리와 설계의 관점에서 다시 잡았다.
→ 설명할 수 있는 분석가, 설득력 있는 프로젝트 흐름을 구성할 수 있게 됨.
🔜 다음 할 일
- SMOTE 적용 후 모델 성능 비교 (
with/without, with/weight, with/both)
- train/val/test 구조로 재정비 + 모델 튜닝
- 전처리/모델링 전체 흐름 시각화 정리해서 팀원들과 공유