오늘 한 일
로트별 수율(Yield) 사전 예측 — 진행 정리
1. 배경 및 목적
사출 조건이 초 단위까지 완전히 동일한 shot들 사이에서도 FAI 합/불 판정이 갈리는 현상을 분석하는 과정에서, 캐비티 위치 효과 및 로트(LOT) 단위 정보가 조건 컬럼보다 fail 여부를 훨씬 잘 설명한다는 것을 확인함(로트 소속만 알아도 예측 AUC 0.798, 조건만 사용 시 0.616 — ICC 기준 로트 효과 약 29%).
이 결과를 바탕으로 팀 회의에서 "shot 단위 합/불 예측" 대신 "로트 단위 수율(fail rate) 예측"으로 방향을 전환하기로 결정함. 목표는 로트가 끝나기 전, 로트 초반 일부 shot 정보만으로 그 로트의 최종 수율을 미리 예측하는 것(사전 예측/조기경보형).
2. 예측 정의
- 예측 대상: 로트별 최종 fail rate (연속값, 회귀)
- 예측 시점(cutoff): 로트 전체 shot 중 앞부분 10% / 20% / 30% / 50%까지만 관측한 시점
- 모델: LGBMRegressor
- 평가지표: R², MAE, Spearman 순위상관, Top-20% Lift
- R²/MAE보다 Spearman·Lift를 주요 지표로 채택한 이유: 타겟(수율) 자체의 노이즈가 커서 R²가 대부분 구간에서 음수로 나오는 한계가 있었음. 실무적으로는 "어느 로트가 상대적으로 더 위험한지 순위를 잘 매기는가"가 더 중요하다고 판단.
3. 팀 기존 분석(09~15번 노트북) 반영 사항
로트 모델을 설계하기 전, 팀에서 이미 확정한 결론들을 그대로 반영함.
확정 사항 출처 반영 내용
| FAI는 검사 시점(생산 후 평균 8.5시간 뒤)에 판정과 동시에 생성되는 lag-0 값 → 데이터 누수 | 12번 | FAI 원본값·NG 플래그를 피처에서 완전히 제외 |
| 2026년 1~2월 불량 급등은 조건의 평균 이동이 아니라 산포(분산) 확대 결과 | 13번 | phase(안정기/확대기/급등기/진정기) 카테고리 피처로 반영 |
| "산포 확대가 9일 앞서 불량 급등을 예고한다"는 가설은 재현성 검증에서 기각(단일 사건 우연) | 15번 | 고정 lead-time 가정 피처는 사용하지 않음 |
| 재현성이 확인된 7개 컬럼(Cycle Time, 보압완료위치, 최소쿠션, 사출시간, 금형온도1/2, 충진시간)의 rolling z-score + 3일 연속 초과 플래그는 실제 성능 개선(AUC +0.0054) | 15번 | 동일한 조기경보 피처를 로트 모델에도 그대로 적용 |
| 데이터 클리닝 기준: 금형온도1 극단치(<45 또는 >95), Cycle Time>20초, 압력/쿠션 zero값 → 총 8,703건(3.76%) 제거 | 15번 | 동일 기준으로 클리닝 (독립적으로 재계산해도 3.760%로 정확히 일치, 교차검증됨) |
| E09/E10은 금형온도1 센서가 고정값(70.9)으로 대치된 비율이 각각 85.3%/82.1% | 15번 | 두 장비는 금형온도1 관련 rolling 피처 계산에서 제외 |
4. 피처 설계
- 사출조건 9개의 관측 구간(cutoff까지) 평균/표준편차
- 캐비티 사용비율 + 과거기준 위험도 (이번 분석에서 새로 설계): 로트 시작 이전에 이미 종료된 로트들의 장비×캐비티별 fail율만 사용(expanding window)해, 해당 로트의 캐비티 구성과 곱해 위험도 점수화. Leakage 없이 캐비티 효과를 로트 모델에 반영하기 위한 핵심 피처.
- 조기경보 rolling 피처(15번 검증 7개 컬럼의 z-score + sustained breach flag, 14일 trailing baseline, shift(1) 적용으로 look-ahead 방지)
- 재가동 피처: gap_hour, restart_flag, segment_id, elapsed_since_restart
- MACH_ID, phase(안정기/확대기/급등기/진정기) — categorical
제외한 피처: FAI 원본값·NG 플래그(누수), Unit_ID(누수 의심, 별도 검증 필요), SoftBin/Error_Message/Algo_Code/AlgoTime_Sta1~7(검사 단계 관련, 미검증).
5. Train/Val/Test 분할
로트(LOTN_refined) 단위로 시간순 정렬 후 설비별 7:1:2로 분할(로트가 분할 경계에서 쪼개지지 않도록 보장). 클리닝 반영 후 로트 수는 8,413개 → 8,358개(55개 로트 전량 제거).
6. 실험 v1 — FAI 포함, 클리닝 이전
cutoff 구분 R² Spearman Lift(상위20%)
| 10% | val / test | -0.173 / -2.012 | 0.335 / 0.287 | 1.24x / 1.12x |
| 20% | val / test | -0.062 / -1.766 | 0.417 / 0.333 | 1.30x / 1.14x |
| 30% | val / test | -0.060 / -1.832 | 0.435 / 0.361 | 1.27x / 1.15x |
| 50% | val / test | 0.010 / -1.686 | 0.458 / 0.383 | 1.32x / 1.17x |
cutoff가 늘어날수록 지표가 완만히 개선되는 합리적인 패턴을 보였으나, FAI 평균값을 로트 초반 shot에서 가져오는 것 자체가 그 shot들의 검사 결과를 미리 들여다보는 것과 다름없어 "사전 예측" 정의에 위배되는 데이터 누수로 판단, 제외를 결정함.
7. 실험 v2 — FAI 제외 + 클리닝 + phase/조기경보 반영
cutoff 구분 R² Spearman Lift(상위20%)
| 10% | val / test | -0.426 / -2.571 | 0.104 / 0.110 | 1.12x / 1.07x |
| 20% | val / test | -0.481 / -2.543 | 0.063 / 0.105 | 1.08x / 1.06x |
| 30% | val / test | -0.591 / -2.488 | 0.037 / 0.103 | 1.13x / 1.03x |
| 50% | val / test | -0.598 / -2.544 | 0.036 / 0.088 | 1.04x / 1.04x |
전체 풀링 기준 Spearman이 0.04~0.11 수준으로 급락함. v1에서 FAI가 제공하던 신호가 대부분 데이터 누수였음을 재확인한 결과이며, 동시에 "조건만으로는 shot 단위 AUC 0.45~0.56이 현실적 천장"이라는 팀의 기존 결론과도 일치함.
8. 핵심 발견 — Phase(공정 레짐)별 성능 분해
전체 풀링 지표 급락의 원인을 진단하기 위해 cutoff=30% 모델을 test 내 phase별로 재평가함.
phase n(test) 실제 fail율 평균 R² Spearman
| 안정기 | 111 | 54.1% | -0.462 | 0.450 |
| 확대기 | 477 | 71.0% | -1.500 | 0.154 |
| 급등기 | 624 | 85.7% | -5.379 | 0.030 |
| 진정기 | 473 | 78.4% | -3.400 | -0.001 |
핵심 해석: test 로트의 93%(1,574/1,685)가 train이 한 번도 겪지 않은 레짐(확대기~진정기)에 속해 있었음. 전체 풀링 지표가 낮게 나온 것은 피처가 무의미해서가 아니라, 대부분의 test가 훈련 레짐 밖에 있었기 때문임. train과 동일한 레짐(안정기)에 속한 로트에서는 Spearman 0.450으로 유의미한 순위 예측력이 확인됨.
Feature importance 확인 결과, 조기경보 z-score 피처들, MACH_ID, 재가동 피처, 그리고 새로 설계한 cavity_hist_risk가 모두 유의미하게 사용되고 있어 — 피처 자체가 죽은 신호가 아니라 레짐이 유사할 때는 실질적으로 기능하는 신호임이 뒷받침됨.
9. 결론
- FAI를 제외하고 캐비티·재가동·조기경보 피처만으로 로트 수율을 사전 예측하는 모델은, 훈련 시점과 유사한 공정 레짐(안정기)에서는 실질적인 순위 예측력(Spearman 0.45)을 보임.
- 훈련 데이터가 한 번도 경험하지 못한 새로운 레짐(확대기~진정기)으로의 외삽은 현재 모델로는 불가능함 — 모델 설계의 결함이 아니라, 유사 사례가 데이터에 없는 상태에서 근본적으로 어려운 문제.
- "평상시 수율 예측"과 "공정 레짐 전환 자체의 조기 감지"는 서로 다른 문제. 현재 피처로는 전자에서 실질적 가치가 확인되지만, 후자는 별도 접근이 필요함.
10. 다음 단계 제안
- Val set에서도 phase별 성능 분해를 재현해, 안정기 Spearman 0.450이 우연이 아닌지 교차 검증
- "평상시 수율 예측" vs "레짐 전환 조기 감지"를 팀 내에서 별개 과제로 명확히 구분해 커뮤니케이션
- E09/E10 금형온도1 센서 고정값 대치, 표본 부족 설비 등 데이터 품질 이슈 개선 검토
- 장비·금형별로 문제 캐비티가 다르다는 점을 설비/금형 담당 부서에 공유, 캐비티별 실측 센서·금형 인서트 마모/정비 이력 확보 가능성 문의
- 풀링된 전체 지표만으로 모델을 평가하지 않고, 항상 phase(레짐)별로 분리한 지표를 함께 보고하는 것을 팀 표준 관행으로 삼음
'내일배움캠프(본캠프)' 카테고리의 다른 글
| [내일배움캠프] 본캠프 7/22 (0) | 2026.07.22 |
|---|---|
| [내일배움캠프] 본캠프 7/21 (0) | 2026.07.21 |
| [내일배움캠프] 본캠프 7/16 (0) | 2026.07.16 |
| [내일배움캠프] 본캠프 7/15 (0) | 2026.07.15 |
| [내일배움캠프] 본캠프 7/14 (0) | 2026.07.14 |