[TIL]2025-04-24

yeyeyeyeye·2025년 4월 24일

TIL

목록 보기
6/18

주제: 불균형 데이터 처리 & 전처리 실무 흐름 재정립


1. 불균형 데이터 처리 기법의 적용 시점

  • SMOTE, class_weight는 반드시 train 데이터에만 적용해야 한다.
  • test/validation은 모델이 한 번도 보지 못한 상태여야 성능 평가가 의미 있다.

2. train/test 나누기 전에 전처리? 그건 실수!

  • 모델링용 전처리는 반드시 train/test split 이후
  • 적용 순서:
    1. train/test 나누기
    2. train에 fit (스케일링, 인코딩, 결측치 처리 등)
    3. 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 구조로 재정비 + 모델 튜닝
  • 전처리/모델링 전체 흐름 시각화 정리해서 팀원들과 공유
profile
안녕하세요? 데이터분석가 되고 싶어요.

0개의 댓글