TIL(Today I Learned)
1️⃣실전 자동화 프로젝트 (4)
데이터 전처리 파이프라인
STEP 1. 누수(Leakage) 컬럼 제거
모델 학습 시 타깃 정보가 포함되지 않도록 누수 컬럼을 제거한다.
- 타깃 컬럼
Y_Quality제거 PRODUCT_ID,TIMESTAMP는 모델 입력 피처에서 제외- 단,
TIMESTAMP는 시간 기반 검증을 위해 별도로 보관
STEP 2. 완전 결측 컬럼 유지
완전히 결측(NaN)으로 이루어진 컬럼도 삭제하지 않고 유지한다.
- 모든 값이
NaN인 컬럼 유지 - 결측 여부 자체가 의미를 가질 수 있으므로 제거하지 않음
STEP 3. 상수 · 저분산 컬럼 제거
정보량이 없는 센서 컬럼을 제거한다.
제거 기준
nunique() ≤ 1std() = 0
STEP 4. 위장 결측값 정규화
실제 결측값을 의미하는 placeholder 값을 모두 NaN으로 통일한다.
변환 대상 예시
9999999-999-9999
STEP 5. 제품별 데이터 분리
제품 특성에 맞게 데이터를 분리하여 모델을 학습한다.
A_31T_31O_31
단, 제품 구분을 위해 PRODUCT_CODE는 유지한다.
STEP 6. 범주형 변수 인코딩
모델 학습을 위해 범주형 변수인 LINE을 인코딩한다.
LINE변수 인코딩- 머신러닝 모델 입력 형태로 변환
STEP 7. 결측값 처리
트리 기반 모델의 특성을 고려하여 결측값을 별도로 대체하지 않는다.
- 결측값(
NaN) 그대로 유지 - 불필요한 평균·중앙값 대체(Imputation) 수행하지 않음
STEP 8. 타깃 및 검증 설계
타깃 설계
Y_Quality를 예측하는 회귀 모델 학습- 예측 결과를 임계값(Threshold)을 기준으로 품질 등급으로 분류
클래스 불균형 처리
- 클래스 가중치(Class Weight)를 적용하여 불균형 완화
검증 방법
- 데이터 누수를 방지하기 위해 Stratified K-Fold Cross Validation 사용
- 각 Fold의 클래스 비율을 유지하며 모델 성능 평가
💡 느낀점
결측값과 위장 결측값을 처리하고, 상수 및 저분산 컬럼을 제거하며, 데이터 누수를 방지하기 위한 피처 구성을 수행하는 과정이 모델 성능과 신뢰성을 확보하는 과정임을 알 수 있었다. 8단계에 전처리를 진행했음에도 컬럼 수가 지나치게 많아 과적합이 우려되어 결측 비율을 기준으로 컬럼 축소를 진행해야 할지 고민되었다. 추후에는 고민한 내용을 토대로 전처리를 진행하고 과정에서 K-Fold를 적용시켜 활용 가능성과 신뢰성을 함께 고려하는 검증을 추가하여 진행할 예정이다.
'최종 프로젝트' 카테고리의 다른 글
| Chapter.9 최종 실전 자동화 프로젝트 (7) (0) | 2026.07.02 |
|---|---|
| Chapter.9 최종 실전 자동화 프로젝트 (6) (0) | 2026.07.01 |
| Chapter.9 최종 실전 자동화 프로젝트 (4) (0) | 2026.06.29 |
| Chapter.9 최종 실전 자동화 프로젝트 (3) (0) | 2026.06.26 |
| Chapter.9 최종 실전 자동화 프로젝트 (2) (0) | 2026.06.25 |