문제풀이

왜 SHAP가 특별한가
SHAP의 가장 큰 강점은 수학적으로 유일하고 공정한 특성 기여도 측정 방법을 제공한다는 거예요. 단순히 특성의 중요도만 평가하는 것이 아니라, 각 특성이 예측값에 실제로 얼마나 더하거나 뺐는지를 추적할 수 있습니다.
이렇게 하면 모델의 예측 과정을 투명하게 설명할 수 있고, 잘못된 예측이 나왔을 때 어느 특성 때문에 그렇게 되었는지 명확히 파악할 수 있어요.
헷갈리기 쉬운 지점
특성의 "중요도"와 특정 예측에서의 "기여도"는 다른 개념이라는 점을 기억해요. 중요도는 전체 모델 관점이고, 기여도는 개별 예측 관점이에요.
복습 정말 잘했어요! 설명 가능한 AI의 핵심을 이해하셨어요
실전 프로젝트
EV+OES 기반 금속 식각 공정 양불 분류 모델링
오늘 진행한 내용
오늘은 금속 식각 공정 데이터 중 EV 데이터와 OES 데이터만 사용하여 정상 wafer와 불량 wafer를 구분하는 양불 분류 모델을 정리했다.
EV는 장비의 압력, 가스 유량, RF/TCP power, impedance 등 공정 제어 상태를 나타내고, OES는 플라즈마 발광 스펙트럼을 통해 식각 반응 상태를 보여준다. 이번 분석에서는 RFM을 제외하고 EV+OES 조합만으로 불량을 얼마나 잘 탐지할 수 있는지 확인했다.
데이터는 최종적으로 126개 wafer를 사용했으며, 정상 106개, 불량 20개로 구성되었다. 불량 비율이 약 15.9%로 낮기 때문에 단순 Accuracy만으로 모델을 평가하면 안 된다고 판단했다. 따라서 모델 성능은 Recall, F1-score, False Negative를 중심으로 확인했다.
데이터 전처리 및 변수 생성
EV와 OES는 모두 시계열 데이터이지만, 모델 입력은 wafer 단위로 구성해야 했다. 그래서 각 wafer별로 시계열을 요약하는 통계 변수를 생성했다.
EV 데이터에서는 다음과 같은 변수를 만들었다.
변수의미| mean | 평균 공정 상태 |
| std | 공정 중 변동성 |
| min / max | 최소·최대 운전 상태 |
| range | 변화 폭 |
| iqr | 이상값 영향을 줄인 변동성 |
| slope | 시간에 따른 변화 방향 |
| delta | 시작점 대비 종료점 변화 |
| step4 / step5 통계 | Main Etch와 Over Etch 구간별 상태 |
OES 데이터는 별도 시간 컬럼이 없기 때문에 wafer 내부 행 순서를 공정 진행 순서로 보고 분석했다. OES에서도 평균, 표준편차, 최대값, 최소값, 변화량, 기울기, 센서 간 편차 등을 생성했다.
추가로 공정 해석을 위해 Al, Ti, Si 관련 파장대를 따로 반영했다.
구분파장| Al | 394.4nm, 395.8nm |
| Ti | 336.98nm |
| Si | 250.0nm |
| 500nm대 | 532.6nm, 544.2nm, 556.7nm, 580.0nm |
모델링 흐름
이번 모델링은 아래 순서로 진행했다.
단계내용| 1 | EV+OES wafer 단위 변수 생성 |
| 2 | Global baseline 모델 평가 |
| 3 | Experiment별 local 모델 평가 |
| 4 | Local 기준 주요 변수 선정 |
| 5 | Local 정상 기준 편차 변수 생성 |
| 6 | Enhanced LightGBM 모델 평가 |
| 7 | Optuna 튜닝 |
| 8 | 변수 중요도 해석 |
| 9 | 불량 유형 분류 가능성 검토 |
Baseline 모델 결과
먼저 전체 데이터를 하나로 사용해 Global Baseline 모델을 평가했다.
모델AccuracyPrecisionRecallF1FN| Logistic Regression | 0.786 | 0.348 | 0.400 | 0.372 | 12 |
| ExtraTrees | 0.873 | 1.000 | 0.200 | 0.333 | 16 |
| LightGBM | 0.849 | 0.571 | 0.200 | 0.296 | 16 |
| RandomForest | 0.857 | 1.000 | 0.100 | 0.182 | 18 |
| Dummy | 0.841 | 0.000 | 0.000 | 0.000 | 20 |
Baseline 결과에서는 Accuracy가 높아 보여도 실제 불량 검출 성능은 부족했다. 특히 RandomForest와 ExtraTrees는 정상은 잘 맞췄지만, 불량을 대부분 정상으로 판단했다.
가장 높은 Recall은 Logistic Regression의 0.400이었지만, Precision이 낮아 정상 wafer를 불량으로 잘못 판단하는 경우가 많았다. 따라서 기본 통계 변수만으로는 EV+OES 양불 분류 모델이 충분하다고 보기 어려웠다.
Local 정상 기준 편차 변수 생성
공정 데이터는 experiment 29, 31, 33 그룹으로 나뉘며, 그룹별 공정 drift가 존재한다. 이를 보정하기 위해 각 experiment 내부의 정상 wafer를 기준으로 편차 변수를 만들었다.
rz = (현재 wafer 값 - 같은 experiment 정상 평균) / 같은 experiment 정상 표준편차
abs_rz = |rz|
즉, 단순히 변수값 자체를 보는 것이 아니라,
같은 실험 그룹의 정상 wafer들과 비교했을 때 얼마나 벗어났는가
를 변수로 추가한 것이다.
이 방식은 공정 drift를 줄이고, 불량 wafer가 정상 기준에서 얼마나 이탈했는지 더 잘 반영하기 위한 방법이다.
Enhanced 모델 결과
Local 정상 기준 편차 변수를 추가한 뒤 Enhanced LightGBM 모델을 평가했다.
모델AccuracyPrecisionRecallF1FN| Enhanced LightGBM | 0.929 | 0.867 | 0.650 | 0.743 | 7 |
Baseline과 비교하면 성능이 확실히 좋아졌다.
구분Baseline LREnhanced LightGBM| Recall | 0.400 | 0.650 |
| F1 | 0.372 | 0.743 |
| FN | 12 | 7 |
| TP | 8 | 13 |
불량 20개 중 13개를 검출했고, 놓친 불량은 7개로 줄었다. 이를 통해 단순 통계 변수보다 local 정상 기준 편차 변수가 불량 탐지에 효과적이라는 점을 확인했다.
Local Enhanced 결과
Experiment별 Enhanced 모델 결과는 다음과 같았다.
ExperimentAccuracyPrecisionRecallF1FN| 29 | 0.810 | 0.500 | 0.500 | 0.500 | 4 |
| 31 | 0.860 | 0.500 | 0.167 | 0.250 | 5 |
| 33 | 0.976 | 1.000 | 0.833 | 0.909 | 1 |
Experiment 33은 불량을 잘 검출했지만, Experiment 31은 Recall이 낮았다. 즉, EV+OES만으로 모든 실험 그룹의 불량을 안정적으로 탐지한다고 말하기는 어렵다.
특히 Experiment 31에서는 EV와 OES 신호만으로는 불량 구분이 약했을 가능성이 있다. 이 부분은 이후 EV+RFM 또는 EV+OES+RFM 모델과 비교가 필요하다.
Optuna 튜닝 결과
Enhanced feature를 사용한 global 모델에 Optuna 튜닝을 적용했다.
모델AccuracyPrecisionRecallF1FN| Optuna Tuned Global | 0.960 | 0.857 | 0.900 | 0.878 | 2 |
단계별 성능 변화는 다음과 같다.
단계RecallF1FNTP| Baseline LR | 0.400 | 0.372 | 12 | 8 |
| Enhanced LightGBM | 0.650 | 0.743 | 7 | 13 |
| Optuna Tuned Global | 0.900 | 0.878 | 2 | 18 |
최종 global 모델은 불량 20개 중 18개를 검출했다. 놓친 불량은 2개로 줄었고, F1-score도 0.878까지 개선되었다.
성능 개선 흐름은 다음과 같이 정리할 수 있다.
기본 통계 변수 생성
↓
local 정상 기준 편차 변수 추가
↓
LightGBM 적용
↓
Optuna 튜닝
↓
Recall 0.900 달성
주요 변수 해석
최종 모델에서 중요하게 나타난 변수는 다음과 같다.
변수해석| DEV__OES__394.4__std__abs_rz | Al 방출선 부근 변동성이 정상 기준에서 벗어난 정도 |
| DEV__OES__Al_delta__abs_rz | Al 관련 OES 변화량의 정상 기준 편차 |
| DEV__EV__Pressure__range__abs_rz | 챔버 압력 변화 폭의 정상 기준 편차 |
| DEV__EV__TCP Load__step4_mean__abs_rz | Main Etch 구간 TCP Load 평균 편차 |
| DEV__EV__Pressure__step5_minus_step4_mean__abs_rz | Step4에서 Step5로 넘어갈 때 압력 변화 |
| OES__660.0__slope | 660nm 부근 발광 intensity 변화 |
| EV__TCP Rfl Pwr__step4_slope | Step4 구간 TCP 반사전력 변화 |
| EV__RF Btm Rfl Pwr__step4_slope | Step4 구간 RF Bottom 반사전력 변화 |
| EV__Pressure__slope | 챔버 압력의 시간 변화 |
중요 변수는 크게 세 가지로 묶을 수 있었다.
그룹관련 변수의미| OES Al 신호 | 394.4nm, Al_delta | Al 식각 진행 상태 변화 |
| Pressure | Pressure range, Pressure slope | 챔버 압력 안정성 |
| RF/TCP | TCP Load, reflected power | 전력 전달 및 matching 상태 |
공정 관점에서는 다음 흐름으로 해석할 수 있다.
압력 또는 전력 전달 상태 변화
↓
플라즈마 상태 변화
↓
Al 관련 OES 신호 변화
↓
정상 기준 편차 증가
↓
불량 가능성 증가
단, 변수 중요도는 모델이 분류에 사용한 정보일 뿐이므로 실제 불량 원인이라고 단정하면 안 된다. 현재는 불량과 관련성이 높은 후보 변수로 해석하는 것이 맞다.
불량 유형 분류 검토
양불 분류 이후 불량 유형 분류 가능성도 확인했다.
Fault Family개수| TCP | 6 |
| Gas | 6 |
| Pressure | 4 |
| RF | 3 |
| He | 1 |
결과는 다음과 같았다.
지표값| Accuracy | 0.45 |
| Macro F1 | 0.33 |
| Weighted F1 | 0.42 |
불량 유형 분류는 아직 신뢰하기 어렵다. 전체 불량 데이터가 20개뿐이고, He는 샘플이 1개뿐이라 학습이 거의 불가능하다. 따라서 현재 단계에서는 불량 유형 분류보다 양불 분류 성능을 먼저 안정화하는 것이 맞다.
오늘의 정리
EV+OES 기반 양불 분류에서 단순 baseline 모델은 불량 검출력이 부족했다. Accuracy는 높아 보일 수 있지만, 실제로는 불량을 많이 놓치는 문제가 있었다.
하지만 experiment별 정상 기준 편차 변수를 추가한 뒤 성능이 크게 개선되었다. Enhanced LightGBM은 Recall 0.650을 기록했고, Optuna 튜닝을 적용한 최종 global 모델은 Recall 0.900, F1-score 0.878까지 향상되었다.
이번 분석을 통해 EV+OES만으로도 양불 분류 가능성이 있다는 점을 확인했다. 특히 Al 관련 OES 신호, 챔버 압력 변화, TCP Load, RF/TCP 반사전력 변화가 불량 분류에 중요한 정보를 제공했다.
다만 experiment별 성능 차이가 존재했고, 불량 유형 분류는 데이터 수 부족으로 아직 안정적이지 않았다. 이후에는 EV+RFM, EV+OES+RFM 모델과 비교하여 어떤 센서 조합이 가장 안정적인지 확인할 필요가 있다.
다음 진행 방향
작업목적| EV+RFM 모델 비교 | RF matching 정보가 불량 검출을 보완하는지 확인 |
| EV+OES+RFM 모델 비교 | 다중 센서 통합 성능 확인 |
| Local별 Optuna 튜닝 | experiment별 성능 차이 완화 |
| Threshold 최적화 | False Negative 감소 |
| 주요 변수 관리도 작성 | 공정 알람 변수로 활용 |
| 불량 유형별 데이터 추가 | Fault family 분류 안정화 |
한 줄 요약
EV+OES 양불 분류에서는 기본 통계 변수만 사용한 모델보다 local 정상 기준 편차 변수를 추가한 LightGBM 모델이 더 안정적이었고, Optuna 튜닝 후 global 기준 Recall 0.900, F1-score 0.878까지 개선되었다.
오늘자 결론
데이터를 팀원들과 나눠서 여러 방식으로 정합하고 분석하는 걸 해봤는데 결국 unfolding 방식으로 정합한 데이터를 사용하기로 했다. 내가 했던 게 전부 사라진 느낌,,
머신러닝 데이터 정합은 잘 정리한 것 같으니 내일 있을 튜터 피드백을 대비해 노션을 정리하는 시간을 가져야한다.
이후 본격적인 시계열 모델링과 대시보드 구성에 대해 회의해봐야할 것 같다.
'QAQC_5기 부트캠프 > 실전 프로젝트' 카테고리의 다른 글
| [내일배움캠프] QA/QC_5기 본캠프(0608) (0) | 2026.06.08 |
|---|---|
| [내일배움캠프] QA/QC_5기 본캠프(0604) (0) | 2026.06.05 |
| [내일배움캠프] QA/QC_5기 본캠프(0602) (1) | 2026.06.02 |
| [내일배움캠프] QA/QC_5기 본캠프(0601) (0) | 2026.06.01 |
| [내일배움캠프] QA/QC_5기 본캠프(0529) (0) | 2026.05.29 |
