✅ 오늘 한 것
실전 프로젝트
✏️ 오늘 배운 점
1. 프로젝트 개요
- 목표: 페니실린 제조 공정에서 제어 방식(RC, OC, APC)에 따른 생산성 차이를 검증하고, 불량(Fault) 발생의 근본 원인을 규명하며, 이를 예측하는 머신러닝 모델 구축.
- 데이터: 시계열 센서 데이터 (Batch 단위 공정)
2. 주요 수행 내용
🔍 A. 데이터 시각화 및 성과 검증 (EDA)
- 제어 방식별 성과 비교:
- Box Plot과 Bar Chart를 통해 APC(최적제어)가 가장 높은 평균 생산량(High Yield)과 가장 낮은 변동성(Stability)을 가짐을 통계적으로 증명함.
- 반면, Fault(불량) 배치는 생산성이 약 30~40% 급락함을 확인.
- 근본 원인 분석 (Root Cause Analysis):
- Overlay 기법 적용: [RC/OC/APC 평균, 표준편차(회색 띠)] 위에 [생산성 하위 5개 Fault 배치(빨간 점선)]를 겹쳐 그리는 시각화 구현.
- 인사이트 도출: 결과 변수(생산량)가 아닌 제어 변수(pH, DO, Fs 등)에서 정상 범위를 이탈(Deviation)하는 순간이 불량의 직접적 원인임을 시각적으로 포착함.
⚙️ B. 시계열 피처 엔지니어링 (Feature Engineering)
- 정상성 확보 (Stationarity):
- 각 데이터셋(RC, OC, APC)별로 독립적인 ADF Test(Augmented Dickey-Fuller)를 수행.
- 변수마다 최적의 차분(Differencing) 차수를 자동 산출하여 적용 (비정상 시계열 정상 시계열 변환).
- 파생 변수 생성:
- Diff: 변화량
- Lag: 시차 데이터
- Rolling: 이동 평균 (Window 3)을 통해 추세(Trend) 정보 반영.
- 다중공선성 제거 (VIF):
- 변수 간 상관관계가 너무 높은 경우 모델 성능을 해치므로, VIF(분산 팽창 요인)를 확인하여 중요 변수(주로 차분 변수) 위주로 선별.
🤖 C. 머신러닝 모델링 (Modeling & Tuning)
- 모델 선정 및 검증:
- XGBoost, LightGBM, Random Forest 3가지 모델 비교.
- GroupKFold (k=5): 시계열 배치 데이터 특성상, 동일 배치의 데이터가 Train/Test에 섞이지 않도록 그룹 교차 검증 수행.
- 하이퍼 파라미터 최적화 (Optuna):
- RC, OC, APC 데이터셋의 특성(데이터 분포, 노이즈 등)이 다르므로, 각각 독립적으로 Optuna를 수행하여 맞춤형 파라미터 탐색.
- 최적화 기준: RMSE 최소화 (동시에 설명력 확보를 위해 R2 Score 모니터링).
- 최종 결과:
- XGBoost 단일 모델이 R2 Score 0.96~0.97 수준의 매우 높은 예측 정확도를 달성.
- 최종 생산량 오차율(Yield Error) 약 5~7% 달성.
💡 D. 모델 해석 (XAI)
- Feature Importance: 모델이 예측할 때 어떤 변수를 가장 중요하게 봤는지 확인 (단순 중요도).
- SHAP 분석:
- 단순 중요도를 넘어, "변수 값이 높을 때 생산성이 오르는지, 떨어지는지" 방향성(Positive/Negative Impact)까지 해석.
- 예: "pH 변화량(pH_diff)이 클수록(빨간 점) 생산성이 떨어진다(왼쪽 이동)"는 식의 구체적 제어 가이드 도출 가능.
3. 결론 및 인사이트
- 데이터 분석 결과, APC 도입 시 공정 안정성이 획기적으로 개선됨을 증명함.
- Fault를 예방하기 위해서는 결과만 보는 것이 아니라, 주요 제어 변수(pH, DO 등)의 이탈을 실시간으로 감지하는 것이 핵심임.
- 구축된 머신러닝 모델은 공정의 생산성을 실시간으로 예측하고, 주요 인자를 제어하는 데 활용 가능함.
✏️ 오늘의 질문
1. VIF 분석에서 변수 선택은 어떻게 하는가?
차분을 진행했다면 차분된 변수를, 진행하지 않았다면 본래의 변수를 Feature로 활용하여 VIF 분석을 진행한다.
모델이 실제로 학습하는 입력 변수 형태를 가지고 VIF를 진행한다.
📌추가로 해야 할 점
실전 프로젝트
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_13주차(수)_TIL(실전 프로젝트) (0) | 2025.12.10 |
|---|---|
| 본캠프_13주차(화)_TIL(실전 프로젝트) (0) | 2025.12.09 |
| 본캠프_12주차(금)_TIL(실전 프로젝트) (0) | 2025.12.05 |
| 본캠프_12주차(목)_TIL(실전 프로젝트) (0) | 2025.12.04 |
| 본캠프_12주차(수)_TIL(실전 프로젝트) (0) | 2025.12.03 |