공정 데이터 기반 품질 불량 예측
제조 공정 데이터(Bosch Production Line Performance 데이터셋)를 활용해 제품의 불량(Response=1) 여부를 예측하는 머신러닝 프로젝트입니다.
고차원·불균형 데이터 환경에서 전처리, 피처 엔지니어링, 모델 학습 및 중요도 기반 피처 선택을 통해 예측 성능 개선을 목표.
⸻
- 프로젝트 개요 • 데이터 사이언스 동아리 프로젝트 • 제조 공정 단계별 센서/측정값을 이용한 불량 예측 문제(Binary Classification) • 주요 난점: • 피처 수 수천 개 이상 (고차원 데이터) • 클래스 불균형 (정상 ≫ 불량) • 결측치 비율이 매우 높은 컬럼 다수 존재
⸻
- 데이터 특징 • Bosch Production Line Performance Dataset • 주요 특성: • Numeric / Date 계열 혼합 • 결측치가 99% 이상인 컬럼 다수 • 불량(Response=1) 비율이 매우 낮음
⸻
- 데이터 전처리 및 피처 엔지니어링
3.1 데이터 샘플링 • 클래스 불균형 완화를 위해 Response=1(불량) 기준으로 ID를 우선 샘플링 • 동일 ID 단위로 Train / Validation 분리 • 재현성을 위해 random seed 고정
3.2 파생 변수 생성 • 공정 시간 기반 파생 변수 생성 • Date 피처를 활용해 processing_time 계산 • Numeric + 파생 변수 결합해 학습 데이터 구성
3.3 결측치 처리 • 결측치 비율 99% 이상 컬럼 제거 • 남은 컬럼들만으로 모델 학습 진행
⸻
- 모델 학습
다음 모델을 사용해 학습 및 비교를 진행했습니다. • XGBoost • LightGBM
학습 전략 • Train / Validation 분리 • 불균형 데이터 특성을 고려한 모델 설정 • 성능 비교 및 Feature Importance 분석 중심 접근
⸻
- Feature Importance 기반 피처 선택 • XGBoost, LightGBM 각각에서 Feature Importance 추출 • 상위 N개(예: 700개) 피처 선정 • 두 모델의 중요 피처 합집합(Union) 기준으로 최종 피처 셋 구성 • 중요 피처 시각화를 통해 모델 해석 가능성 확보
⸻
- 결과 및 인사이트 • 극심한 클래스 불균형과 고차원 데이터 환경에서도 피처 선택과 전처리 방식에 따라 성능 개선 가능성 확인 • 단일 모델보다 여러 모델의 Feature Importance를 조합하는 전략이 효과적
⸻
- 사용 기술 • Python • Pandas, NumPy • scikit-learn • XGBoost • LightGBM • Matplotlib
⸻
- 프로젝트를 통해 배운 점 • 고차원·불균형 데이터 문제에서 전처리와 피처 선택의 중요성 • 모델 성능뿐 아니라 Feature Importance를 통한 해석의 필요성 • 팀 프로젝트에서 개인 실험 결과를 공유하고 조합하는 협업 방식의 효과