오늘 한 일
개인 모델에 등급(상/중/하) 분류 적용해보기 — 검토 보고서
0. 이 문서의 성격
이 보고서는 **개인적으로 손보던 모델(16번/17번 실험, LOT+캐비티+시간 lag 피처 기반 LightGBM 모델)**에, 팀원이 노션에 제안한 "등급(상/중/하) 분류"라는 아이디어를 개인적으로 적용해본 결과를 정리한 것이다.
몇 가지 분명히 해둘 점이 있다.
- 여기 나오는 모든 수치는 개인 모델 기준이며, 팀원이 실제로 만든 등급 분류 모델이나 팀원의 실제 데이터를 사용한 것이 아니다.
- 따라서 이 결과를 "등급 분류 방식 자체가 틀렸다"거나 "팀원의 접근이 잘못됐다"는 절대적 판정으로 읽으면 안 된다. 어디까지나 개인 모델에 그 아이디어를 얹어보니 이런 패턴이 나오더라는 참고 자료다.
- 목적은 팀 논의(특히 팀원이 정리한 체크리스트)에 참고할 만한 실험 결과를 보태는 것이지, 결론을 대신 내리는 것이 아니다.
1. 배경
개인 모델로 LOT의 정확한 불량률(%)을 직접 맞히려는 시도는 R²=-0.03으로 신뢰하기 어려운 수준이었다(이 부분은 팀원 쪽 실험에서 먼저 확인됨). 그래서 "정확한 숫자" 대신 "상대적 등급(상/중/하)"으로 목표를 낮추자는 아이디어가 나왔고, 팀원이 이에 대한 1차 결과와 함께 다음 체크리스트를 노션에 남겼다.
- 3등분(tertile) 방식이 적절한가
- 등급 개수가 3개로 충분한가
- 경계선 근처 LOT의 처리 방식
- 등급 기준의 갱신 주기
- 설비별로 등급 기준을 따로 둘지
- 위험한 방향 오판의 원인 추적
- 경계 근처 LOT "애매함 표시"
- 최소 LOT 샷수 기준 재검토
이 체크리스트 중 개인 모델로 바로 실험해볼 수 있는 항목들을 하나씩 확인해봤다.
2. 검증 1 — 등급 경계값을 어떻게 정할지 (test 자체분포 vs train 고정)
팀원 코드를 살펴보니, 등급 경계값(상/중/하를 가르는 기준)을 test 데이터 자체의 분포로 매번 다시 나누고 있었다. 이 경우 시간이 지나며 불량률이 계속 오르는 drift 문제가 있어도, test 안에서는 항상 상/중/하가 억지로 균등하게 나뉘어버려 문제가 가려질 수 있다.
그래서 개인 모델로 두 가지 방식을 비교해봤다.
- 방법 A: test 자체 분포로 등급 경계값을 매번 다시 계산 (팀원 코드 방식 재현)
- 방법 B: train(안정적인 시기) 분포로 경계값을 한 번 고정한 뒤, 그 경계값을 그대로 test에 적용 (실제 배포 상황에 더 가까운 방식)

(위 그림 ①②: 방법 A/B의 실제등급×예측등급 교차표. ③: 통합 vs 설비별 3등분 비교. ④: 설비별 평균 불량률. ⑤⑥: 설비별·시기별 위험 오판 비율 — 아래에서 이어서 설명)
결과: 방법 A는 일치율 48.3%가 나왔지만, 방법 B로 정직하게 보면 test 실제등급의 87%가 "하"로 쏠려버렸다. 이 상태에서는 "무조건 하라고 찍기"만 해도 87.4%가 맞는데, 개인 모델의 일치율은 79.7%로 오히려 이 무성의한 기준보다 낮았다. 등급으로 바꿔도 원래 있던 drift 문제(F1 착시)가 똑같이 숨어있었다는 뜻이다.
3. 검증 2 — 통합 기준 vs 설비별 기준
체크리스트의 "설비별로 등급 기준을 따로 둘지" 항목을 확인해봤다. 설비마다 원래 불량률 수준이 다르니(위 그림 ④, F02 0.648~E05 0.899) 설비별로 각자 3등분하면 더 나아지지 않을까 하는 가설이었다.
결과: 오히려 살짝 나빠졌다(통합 48.3% vs 설비별 45.7%). 설비별로 나누면 설비당 LOT 수가 줄어 경계값 추정 자체가 불안정해지는 게 원인으로 보인다. 직관과는 다른 결과였다.
4. 검증 3 — 위험한 오판이 특정 설비·시기에 몰려있는가
"실제로는 불량이 많은데(하) 모델이 양호(상)라고 잘못 판단한" 가장 위험한 오판 케이스를 설비별·시기별로 쪼개봤다(위 그림 ⑤⑥).
- 설비별: E08(39.3%), E06(30.8%), F01(30.0%)에서 위험 오판이 잦았다. 의외로 그동안 계속 "예측이 어려운 설비"로 꼽히던 E07은 21.2%로 중간 수준이었다 — "전체적으로 맞히기 어려운 것"과 "위험한 방향으로 착각하는 것"은 다른 문제일 수 있다는 뜻이다.
- 시기별: 다들 나빠지는 급등기(10.0%)보다, 오히려 상황이 애매하게 바뀌던 확대기(21.2%)와 진정기(26.6%)에서 위험 오판이 더 많았다.
5. 검증 4 — 등급 개수를 2~5단계로 바꿔보면
체크리스트의 "등급 개수가 3개로 충분한가"를 확인하기 위해, train 고정 경계값 방식(방법 B와 동일한 방식)을 그대로 두고 등급 수만 2/3/4/5로 바꿔봤다.
등급수 일치율 trivial baseline 차이

| 2 | 92.4% | 93.8% | -1.4%p |
| 3 | 79.7% | 87.4% | -7.7%p |
| 4 | 68.6% | 82.1% | -13.5%p |
| 5 | 59.3% | 78.2% | -18.9%p |
결과: 등급 개수와 상관없이 전 구간에서 개인 모델이 trivial baseline보다 낮았고, 등급을 세분화할수록 격차가 더 벌어졌다. (참고: 등급 수가 늘수록 "가장 위험한 오판" 비율 자체는 줄어드는데, 이건 모델이 안전해진 게 아니라 등급이 많아지면 양 극단을 오갈 확률 자체가 통계적으로 낮아지기 때문이니 착각하면 안 된다.)
6. 검증 5 — 등급 경계값을 어떤 시점 기준으로 잡을지
체크리스트의 "등급 기준 갱신 주기"를 확인하기 위해, 등급 수는 3(상/중/하)으로 고정하고 경계값을 잡는 시점 기준 4가지를 비교했다.
방식 일치율 trivial 차이

| ① test 자체분포 (참고용, 실제 배포 불가능) | 48.3% | 36.1% | +12.3%p |
| ② train 전체(7~12월) 고정 | 79.7% | 87.4% | -7.7%p |
| ③ train 최근 8주만 고정 | 63.6% | 82.1% | -18.5%p (최악) |
| ④ rolling 정기갱신(2주마다) | 76.5% | 84.7% | -8.2%p |
결과: 실제 배포 가능한 세 방식(②③④) 모두 trivial baseline을 못 이겼다. 특히 "최근 데이터만 쓰면 더 낫지 않을까"라는 직관과 반대로 ③번이 가장 나빴다(표본이 줄어 경계값이 불안정해진 것으로 추정). 자주 갱신하는 ④번도 ②번과 별 차이가 없었다.
7. 종합 (개인적인 해석)
검증 1~5를 종합하면, 개인 모델 기준으로는 "경계값을 어느 시점 기준으로 잡을지"나 "등급을 몇 개로 나눌지"를 조정하는 것만으로는 문제가 해결되지 않는다는 패턴이 계속 반복됐다. 등급 분류라는 방향 자체가 틀렸다기보다는, test 기간 자체의 분포가 과거 어느 시점을 기준으로 봐도 심하게 쏠려있다는 근본 문제(그동안 계속 확인해온 drift 문제)가 등급 분류에도 그대로 이어지는 것으로 보인다.
이건 어디까지나 개인 모델의 현재 피처 구성과 평가 방식 안에서 나온 패턴이라, 팀원의 실제 모델이나 다른 피처 구성에서는 다르게 나올 수 있다. "이 방향은 개인적으로 이렇게 해봤더니 이런 한계가 보이더라" 정도로 팀 논의에 참고자료로 보태는 게 맞을 것 같다.
8. 한계 및 유의사항
- 모든 결과는 개인 모델(LOT_plus_TIME_lag + LightGBM, 16_step3_train/test.csv)의 예측값 기준이며, 팀원의 실제 등급분류 모델/데이터로는 검증되지 않았다.
- 최소 LOT 샷수 기준(5개)은 그대로 두고 진행했다 — 이 기준 자체의 민감도는 아직 확인 전이다.
- 일부 구간(예: 안정기 breakdown, n=10)은 표본이 작아 통계적으로 불안정할 수 있다.
- "3등분 vs 절대 기준선(현업 품질 기준)" 항목은 실제 공차/관리한계 정보가 없어 이번 검증에서 다루지 못했다.
9. 다음으로 고려해볼 만한 것 (개인 의견)
- 지금까지 시도한 "누적형" rolling(train+지금까지의 test 전체)이 아니라, 고정폭으로 계속 옮겨가는 국지적 이동창 방식은 아직 안 해봤다.
- 등급/수치 예측 계열은 한계가 반복 확인된 만큼, 팀원의 ARMA+CUSUM 조기경보 아이디어를 개인 모델에 결합해보는 방향도 고려해볼 만하다.
- "왜 불량률이 그렇게 올랐는지"(설비 재정비 여부 등)에 대한 근본 원인 확인이 여전히 남아있다 — 이게 해결되지 않으면 어떤 모델링 방식을 쓰든 같은 벽에 부딪힐 가능성이 있다.
개인 모델에 등급(상/중/하) 분류 적용해보기 — 검토 보고서
0. 이 문서의 성격 (먼저 읽어주세요)몇 가지 분명히 해둘 점이 있다.- 여기 나오는 모든 수치는 개인 모델 기준이며, 팀원이 실제로 만든 등급 분류 모델이나 팀원의 실제 데이터를 사용한 것이 아니다.
- 따라서 이 결과를 "등급 분류 방식 자체가 틀렸다"거나 "팀원의 접근이 잘못됐다"는 절대적 판정으로 읽으면 안 된다. 어디까지나 개인 모델에 그 아이디어를 얹어보니 이런 패턴이 나오더라는 참고 자료다.
- 목적은 팀 논의(특히 팀원이 정리한 체크리스트)에 참고할 만한 실험 결과를 보태는 것이지, 결론을 대신 내리는 것이 아니다.
1. 배경- 3등분(tertile) 방식이 적절한가
- 등급 개수가 3개로 충분한가
- 경계선 근처 LOT의 처리 방식
- 등급 기준의 갱신 주기
- 설비별로 등급 기준을 따로 둘지
- 위험한 방향 오판의 원인 추적
- 경계 근처 LOT "애매함 표시"
- 최소 LOT 샷수 기준 재검토
2. 검증 1 — 등급 경계값을 어떻게 정할지 (test 자체분포 vs train 고정)그래서 개인 모델로 두 가지 방식을 비교해봤다.- 방법 A: test 자체 분포로 등급 경계값을 매번 다시 계산 (팀원 코드 방식 재현)
- 방법 B: train(안정적인 시기) 분포로 경계값을 한 번 고정한 뒤, 그 경계값을 그대로 test에 적용 (실제 배포 상황에 더 가까운 방식)

3. 검증 2 — 통합 기준 vs 설비별 기준결과: 오히려 살짝 나빠졌다(통합 48.3% vs 설비별 45.7%). 설비별로 나누면 설비당 LOT 수가 줄어 경계값 추정 자체가 불안정해지는 게 원인으로 보인다. 직관과는 다른 결과였다.
4. 검증 3 — 위험한 오판이 특정 설비·시기에 몰려있는가- 설비별: E08(39.3%), E06(30.8%), F01(30.0%)에서 위험 오판이 잦았다. 의외로 그동안 계속 "예측이 어려운 설비"로 꼽히던 E07은 21.2%로 중간 수준이었다 — "전체적으로 맞히기 어려운 것"과 "위험한 방향으로 착각하는 것"은 다른 문제일 수 있다는 뜻이다.
- 시기별: 다들 나빠지는 급등기(10.0%)보다, 오히려 상황이 애매하게 바뀌던 확대기(21.2%)와 진정기(26.6%)에서 위험 오판이 더 많았다.
5. 검증 4 — 등급 개수를 2~5단계로 바꿔보면
등급수 일치율 trivial baseline 차이
결과: 등급 개수와 상관없이 전 구간에서 개인 모델이 trivial baseline보다 낮았고, 등급을 세분화할수록 격차가 더 벌어졌다. (참고: 등급 수가 늘수록 "가장 위험한 오판" 비율 자체는 줄어드는데, 이건 모델이 안전해진 게 아니라 등급이 많아지면 양 극단을 오갈 확률 자체가 통계적으로 낮아지기 때문이니 착각하면 안 된다.)2 92.4% 93.8% -1.4%p 3 79.7% 87.4% -7.7%p 4 68.6% 82.1% -13.5%p 5 59.3% 78.2% -18.9%p
6. 검증 5 — 등급 경계값을 어떤 시점 기준으로 잡을지
방식 일치율 trivial 차이
결과: 실제 배포 가능한 세 방식(②③④) 모두 trivial baseline을 못 이겼다. 특히 "최근 데이터만 쓰면 더 낫지 않을까"라는 직관과 반대로 ③번이 가장 나빴다(표본이 줄어 경계값이 불안정해진 것으로 추정). 자주 갱신하는 ④번도 ②번과 별 차이가 없었다.① test 자체분포 (참고용, 실제 배포 불가능) 48.3% 36.1% +12.3%p ② train 전체(7~12월) 고정 79.7% 87.4% -7.7%p ③ train 최근 8주만 고정 63.6% 82.1% -18.5%p (최악) ④ rolling 정기갱신(2주마다) 76.5% 84.7% -8.2%p
7. 종합 (개인적인 해석)이건 어디까지나 개인 모델의 현재 피처 구성과 평가 방식 안에서 나온 패턴이라, 팀원의 실제 모델이나 다른 피처 구성에서는 다르게 나올 수 있다. "이 방향은 개인적으로 이렇게 해봤더니 이런 한계가 보이더라" 정도로 팀 논의에 참고자료로 보태는 게 맞을 것 같다.
8. 한계 및 유의사항- 모든 결과는 개인 모델(LOT_plus_TIME_lag + LightGBM, 16_step3_train/test.csv)의 예측값 기준이며, 팀원의 실제 등급분류 모델/데이터로는 검증되지 않았다.
- 최소 LOT 샷수 기준(5개)은 그대로 두고 진행했다 — 이 기준 자체의 민감도는 아직 확인 전이다.
- 일부 구간(예: 안정기 breakdown, n=10)은 표본이 작아 통계적으로 불안정할 수 있다.
- "3등분 vs 절대 기준선(현업 품질 기준)" 항목은 실제 공차/관리한계 정보가 없어 이번 검증에서 다루지 못했다.
- 지금까지 시도한 "누적형" rolling(train+지금까지의 test 전체)이 아니라, 고정폭으로 계속 옮겨가는 국지적 이동창 방식은 아직 안 해봤다.
- 등급/수치 예측 계열은 한계가 반복 확인된 만큼, 팀원의 ARMA+CUSUM 조기경보 아이디어를 개인 모델에 결합해보는 방향도 고려해볼 만하다.
- "왜 불량률이 그렇게 올랐는지"(설비 재정비 여부 등)에 대한 근본 원인 확인이 여전히 남아있다 — 이게 해결되지 않으면 어떤 모델링 방식을 쓰든 같은 벽에 부딪힐 가능성이 있다.
개인 모델에 등급(상/중/하) 분류 적용해보기 — 검토 보고서
0. 이 문서의 성격 (먼저 읽어주세요)몇 가지 분명히 해둘 점이 있다.- 여기 나오는 모든 수치는 개인 모델 기준이며, 팀원이 실제로 만든 등급 분류 모델이나 팀원의 실제 데이터를 사용한 것이 아니다.
- 따라서 이 결과를 "등급 분류 방식 자체가 틀렸다"거나 "팀원의 접근이 잘못됐다"는 절대적 판정으로 읽으면 안 된다. 어디까지나 개인 모델에 그 아이디어를 얹어보니 이런 패턴이 나오더라는 참고 자료다.
- 목적은 팀 논의(특히 팀원이 정리한 체크리스트)에 참고할 만한 실험 결과를 보태는 것이지, 결론을 대신 내리는 것이 아니다.
1. 배경- 3등분(tertile) 방식이 적절한가
- 등급 개수가 3개로 충분한가
- 경계선 근처 LOT의 처리 방식
- 등급 기준의 갱신 주기
- 설비별로 등급 기준을 따로 둘지
- 위험한 방향 오판의 원인 추적
- 경계 근처 LOT "애매함 표시"
- 최소 LOT 샷수 기준 재검토
2. 검증 1 — 등급 경계값을 어떻게 정할지 (test 자체분포 vs train 고정)그래서 개인 모델로 두 가지 방식을 비교해봤다.- 방법 A: test 자체 분포로 등급 경계값을 매번 다시 계산 (팀원 코드 방식 재현)
- 방법 B: train(안정적인 시기) 분포로 경계값을 한 번 고정한 뒤, 그 경계값을 그대로 test에 적용 (실제 배포 상황에 더 가까운 방식)

3. 검증 2 — 통합 기준 vs 설비별 기준결과: 오히려 살짝 나빠졌다(통합 48.3% vs 설비별 45.7%). 설비별로 나누면 설비당 LOT 수가 줄어 경계값 추정 자체가 불안정해지는 게 원인으로 보인다. 직관과는 다른 결과였다.
4. 검증 3 — 위험한 오판이 특정 설비·시기에 몰려있는가- 설비별: E08(39.3%), E06(30.8%), F01(30.0%)에서 위험 오판이 잦았다. 의외로 그동안 계속 "예측이 어려운 설비"로 꼽히던 E07은 21.2%로 중간 수준이었다 — "전체적으로 맞히기 어려운 것"과 "위험한 방향으로 착각하는 것"은 다른 문제일 수 있다는 뜻이다.
- 시기별: 다들 나빠지는 급등기(10.0%)보다, 오히려 상황이 애매하게 바뀌던 확대기(21.2%)와 진정기(26.6%)에서 위험 오판이 더 많았다.
5. 검증 4 — 등급 개수를 2~5단계로 바꿔보면
등급수 일치율 trivial baseline 차이
결과: 등급 개수와 상관없이 전 구간에서 개인 모델이 trivial baseline보다 낮았고, 등급을 세분화할수록 격차가 더 벌어졌다. (참고: 등급 수가 늘수록 "가장 위험한 오판" 비율 자체는 줄어드는데, 이건 모델이 안전해진 게 아니라 등급이 많아지면 양 극단을 오갈 확률 자체가 통계적으로 낮아지기 때문이니 착각하면 안 된다.)2 92.4% 93.8% -1.4%p 3 79.7% 87.4% -7.7%p 4 68.6% 82.1% -13.5%p 5 59.3% 78.2% -18.9%p
6. 검증 5 — 등급 경계값을 어떤 시점 기준으로 잡을지
방식 일치율 trivial 차이
결과: 실제 배포 가능한 세 방식(②③④) 모두 trivial baseline을 못 이겼다. 특히 "최근 데이터만 쓰면 더 낫지 않을까"라는 직관과 반대로 ③번이 가장 나빴다(표본이 줄어 경계값이 불안정해진 것으로 추정). 자주 갱신하는 ④번도 ②번과 별 차이가 없었다.① test 자체분포 (참고용, 실제 배포 불가능) 48.3% 36.1% +12.3%p ② train 전체(7~12월) 고정 79.7% 87.4% -7.7%p ③ train 최근 8주만 고정 63.6% 82.1% -18.5%p (최악) ④ rolling 정기갱신(2주마다) 76.5% 84.7% -8.2%p
7. 종합 (개인적인 해석)이건 어디까지나 개인 모델의 현재 피처 구성과 평가 방식 안에서 나온 패턴이라, 팀원의 실제 모델이나 다른 피처 구성에서는 다르게 나올 수 있다. "이 방향은 개인적으로 이렇게 해봤더니 이런 한계가 보이더라" 정도로 팀 논의에 참고자료로 보태는 게 맞을 것 같다.
8. 한계 및 유의사항- 모든 결과는 개인 모델(LOT_plus_TIME_lag + LightGBM, 16_step3_train/test.csv)의 예측값 기준이며, 팀원의 실제 등급분류 모델/데이터로는 검증되지 않았다.
- 최소 LOT 샷수 기준(5개)은 그대로 두고 진행했다 — 이 기준 자체의 민감도는 아직 확인 전이다.
- 일부 구간(예: 안정기 breakdown, n=10)은 표본이 작아 통계적으로 불안정할 수 있다.
- "3등분 vs 절대 기준선(현업 품질 기준)" 항목은 실제 공차/관리한계 정보가 없어 이번 검증에서 다루지 못했다.
- 지금까지 시도한 "누적형" rolling(train+지금까지의 test 전체)이 아니라, 고정폭으로 계속 옮겨가는 국지적 이동창 방식은 아직 안 해봤다.
- 등급/수치 예측 계열은 한계가 반복 확인된 만큼, 팀원의 ARMA+CUSUM 조기경보 아이디어를 개인 모델에 결합해보는 방향도 고려해볼 만하다.
- "왜 불량률이 그렇게 올랐는지"(설비 재정비 여부 등)에 대한 근본 원인 확인이 여전히 남아있다 — 이게 해결되지 않으면 어떤 모델링 방식을 쓰든 같은 벽에 부딪힐 가능성이 있다.
- 검증 1~5를 종합하면, 개인 모델 기준으로는 "경계값을 어느 시점 기준으로 잡을지"나 "등급을 몇 개로 나눌지"를 조정하는 것만으로는 문제가 해결되지 않는다는 패턴이 계속 반복됐다. 등급 분류라는 방향 자체가 틀렸다기보다는, test 기간 자체의 분포가 과거 어느 시점을 기준으로 봐도 심하게 쏠려있다는 근본 문제(그동안 계속 확인해온 drift 문제)가 등급 분류에도 그대로 이어지는 것으로 보인다.
- 체크리스트의 "등급 기준 갱신 주기"를 확인하기 위해, 등급 수는 3(상/중/하)으로 고정하고 경계값을 잡는 시점 기준 4가지를 비교했다.
- 체크리스트의 "등급 개수가 3개로 충분한가"를 확인하기 위해, train 고정 경계값 방식(방법 B와 동일한 방식)을 그대로 두고 등급 수만 2/3/4/5로 바꿔봤다.
- "실제로는 불량이 많은데(하) 모델이 양호(상)라고 잘못 판단한" 가장 위험한 오판 케이스를 설비별·시기별로 쪼개봤다(위 그림 ⑤⑥).
- 체크리스트의 "설비별로 등급 기준을 따로 둘지" 항목을 확인해봤다. 설비마다 원래 불량률 수준이 다르니(위 그림 ④, F02 0.648~E05 0.899) 설비별로 각자 3등분하면 더 나아지지 않을까 하는 가설이었다.
- 결과: 방법 A는 일치율 48.3%가 나왔지만, 방법 B로 정직하게 보면 test 실제등급의 87%가 "하"로 쏠려버렸다. 이 상태에서는 "무조건 하라고 찍기"만 해도 87.4%가 맞는데, 개인 모델의 일치율은 79.7%로 오히려 이 무성의한 기준보다 낮았다. 등급으로 바꿔도 원래 있던 drift 문제(F1 착시)가 똑같이 숨어있었다는 뜻이다.
- (위 그림 ①②: 방법 A/B의 실제등급×예측등급 교차표. ③: 통합 vs 설비별 3등분 비교. ④: 설비별 평균 불량률. ⑤⑥: 설비별·시기별 위험 오판 비율 — 아래에서 이어서 설명)
- 팀원 코드를 살펴보니, 등급 경계값(상/중/하를 가르는 기준)을 test 데이터 자체의 분포로 매번 다시 나누고 있었다. 이 경우 시간이 지나며 불량률이 계속 오르는 drift 문제가 있어도, test 안에서는 항상 상/중/하가 억지로 균등하게 나뉘어버려 문제가 가려질 수 있다.
- 개인 모델로 LOT의 정확한 불량률(%)을 직접 맞히려는 시도는 R²=-0.03으로 신뢰하기 어려운 수준이었다(이 부분은 팀원 쪽 실험에서 먼저 확인됨). 그래서 "정확한 숫자" 대신 "상대적 등급(상/중/하)"으로 목표를 낮추자는 아이디어가 나왔고, 팀원이 이에 대한 1차 결과와 함께 다음 체크리스트를 노션에 남겼다.
- 이 보고서는 **개인적으로 손보던 모델(16번/17번 실험, LOT+캐비티+시간 lag 피처 기반 LightGBM 모델)**에, 팀원이 노션에 제안한 "등급(상/중/하) 분류"라는 아이디어를 개인적으로 적용해본 결과를 정리한 것이다.
- 검증 1~5를 종합하면, 개인 모델 기준으로는 "경계값을 어느 시점 기준으로 잡을지"나 "등급을 몇 개로 나눌지"를 조정하는 것만으로는 문제가 해결되지 않는다는 패턴이 계속 반복됐다. 등급 분류라는 방향 자체가 틀렸다기보다는, test 기간 자체의 분포가 과거 어느 시점을 기준으로 봐도 심하게 쏠려있다는 근본 문제(그동안 계속 확인해온 drift 문제)가 등급 분류에도 그대로 이어지는 것으로 보인다.
- 체크리스트의 "등급 기준 갱신 주기"를 확인하기 위해, 등급 수는 3(상/중/하)으로 고정하고 경계값을 잡는 시점 기준 4가지를 비교했다.
- 체크리스트의 "등급 개수가 3개로 충분한가"를 확인하기 위해, train 고정 경계값 방식(방법 B와 동일한 방식)을 그대로 두고 등급 수만 2/3/4/5로 바꿔봤다.
- "실제로는 불량이 많은데(하) 모델이 양호(상)라고 잘못 판단한" 가장 위험한 오판 케이스를 설비별·시기별로 쪼개봤다(위 그림 ⑤⑥).
- 체크리스트의 "설비별로 등급 기준을 따로 둘지" 항목을 확인해봤다. 설비마다 원래 불량률 수준이 다르니(위 그림 ④, F02 0.648~E05 0.899) 설비별로 각자 3등분하면 더 나아지지 않을까 하는 가설이었다.
- 결과: 방법 A는 일치율 48.3%가 나왔지만, 방법 B로 정직하게 보면 test 실제등급의 87%가 "하"로 쏠려버렸다. 이 상태에서는 "무조건 하라고 찍기"만 해도 87.4%가 맞는데, 개인 모델의 일치율은 79.7%로 오히려 이 무성의한 기준보다 낮았다. 등급으로 바꿔도 원래 있던 drift 문제(F1 착시)가 똑같이 숨어있었다는 뜻이다.
- (위 그림 ①②: 방법 A/B의 실제등급×예측등급 교차표. ③: 통합 vs 설비별 3등분 비교. ④: 설비별 평균 불량률. ⑤⑥: 설비별·시기별 위험 오판 비율 — 아래에서 이어서 설명)
- 팀원 코드를 살펴보니, 등급 경계값(상/중/하를 가르는 기준)을 test 데이터 자체의 분포로 매번 다시 나누고 있었다. 이 경우 시간이 지나며 불량률이 계속 오르는 drift 문제가 있어도, test 안에서는 항상 상/중/하가 억지로 균등하게 나뉘어버려 문제가 가려질 수 있다.
- 개인 모델로 LOT의 정확한 불량률(%)을 직접 맞히려는 시도는 R²=-0.03으로 신뢰하기 어려운 수준이었다(이 부분은 팀원 쪽 실험에서 먼저 확인됨). 그래서 "정확한 숫자" 대신 "상대적 등급(상/중/하)"으로 목표를 낮추자는 아이디어가 나왔고, 팀원이 이에 대한 1차 결과와 함께 다음 체크리스트를 노션에 남겼다.
- 이 보고서는 **개인적으로 손보던 모델(16번/17번 실험, LOT+캐비티+시간 lag 피처 기반 LightGBM 모델)**에, 팀원이 노션에 제안한 "등급(상/중/하) 분류"라는 아이디어를 개인적으로 적용해본 결과를 정리한 것이다.
'내일배움캠프(본캠프)' 카테고리의 다른 글
| [내일배움캠프] 본캠프 7/28 (0) | 2026.07.28 |
|---|---|
| [내일배움캠프] 본캠프 7/27 (0) | 2026.07.27 |
| [내일배움캠프] 본캠프 7/23 (0) | 2026.07.23 |
| [내일배움캠프] 본캠프 7/22 (0) | 2026.07.22 |
| [내일배움캠프] 본캠프 7/21 (0) | 2026.07.21 |