피드로 돌아가기
Leakage in ML Pipelines: How to build a bulletproof preprocessing architecture
Dev.toDev.to
AI/ML

Data Leakage 제거를 통한 모델 신뢰도 확보 및 성능 왜곡 16%p 수정

Leakage in ML Pipelines: How to build a bulletproof preprocessing architecture

Pasquale Molinaro2026년 5월 14일9intermediate

Context

전처리 후 Train-Test Split을 수행하는 일반적 설계로 인해 테스트 데이터의 정보가 학습 과정에 유입되는 Data Leakage 발생. 이로 인해 Local Test 단계에서 98%의 높은 정확도를 보였으나 실제 Production 환경에서 성능이 급락하는 아키텍처적 결함 확인.

Technical Solution

  • Raw Data 상태에서의 즉각적인 Train-Test Split 수행을 통한 테스트 데이터 격리 설계
  • ColumnTransformer 기반의 독립적 Transformer 정의로 수치형과 범주형 데이터의 처리 로직 분리
  • Fit-Transform의 적용 범위를 Training Set으로 한정하여 Global Distribution 유입을 원천 차단하는 구조 채택
  • imblearn.pipeline 도입을 통해 SMOTE 등 샘플링 과정에서 발생할 수 있는 TypeError 해결 및 데이터 무결성 유지
  • Pipeline 내부로 전처리-샘플링-학습 과정을 캡슐화하여 데이터 흐름의 일관성 확보

Impact

Data Leakage로 인한 가공된 정확도 98%에서 실제 baseline accuracy 82%로 수정하여 16%p의 성능 왜곡 제거.


1. 전처리(Imputing, Encoding) 전 반드시 Train-Test Split을 선행했는가?

2. fit() 메서드를 전체 데이터셋이 아닌 Training Set에만 적용했는가?

3. Oversampling 적용 시 sklearn.pipeline 대신 imblearn.pipeline을 사용하여 데이터 변형을 제어했는가?

4. ColumnTransformer를 통해 데이터 타입별 처리 로직을 명확히 분리했는가?

원문 읽기