내일배움캠프(본캠프)

[내일배움캠프] 본캠프 7/7

anscodus 2026. 7. 7. 20:47

오늘 한 일

 

Task

Train/Test Split 재설계 및 모델 재검증 (08_train_test_split_redesign)

멘토 피드백에 따라 기존 전체 시간 기준(글로벌) split을 설비별 시간순 split으로 재설계하고, FAI20_P1 예측 모델의 성능을 재검증함.


실행 및 진행사항 정리

Phase 1. 설비별 가동 타임라인 및 공백 분석

  • 13개 설비 중 8개(E05, E06, E07, E09, E10, F02, F03, F08)에서 7일 이상 가동 공백 발견 (총 16건)
  • 공백 전/후 9개 사출조건 변수에 KS Test 수행 → 16건 전체에서 9개 변수 모두 p<0.05로 유의, KS statistic도 0.4~1.0 수준으로 커서 실질적 분포 차이 확인

Phase 2. 설비별 Train/Val/Test Split 재설계

  • 설비 내에서 시간순 정렬 후 7:1:2 비율로 분할
  • 공백 있는 8개 설비 중 5개는 test 구간이 "마지막 공백 이후" 데이터로만 구성, 3개(E06/F02/F03)는 test 내부에도 시간 불연속 포함
  • 기존 방식은 test가 2026년 1~2월에 통째로 몰렸으나, 새 방식은 test가 여러 시점(9월~2월)에 분산됨 (시각화로 확인)

Phase 3. 설비별 개별 베이스라인 모델

  • 13개 설비 개별 LightGBM 모델 학습, R² 평균 -1.3551 (범위 -6.7423 ~ 0.0129)
  • R² 양수 설비는 F07 1개뿐. 공백 없는 연속가동 설비도 대부분 음수 R²
  • Sanity check (E08 단일 설비): 동일 모델/피처에서 split만 무작위→시간순으로 바꾸자 R² 0.83 → -2.91로 붕괴 → 성능 저하가 공백/코드 문제가 아니라 "과거로 미래 예측" 구조 자체의 드리프트 문제임을 확인

Phase 4. 개별 모델 vs 통합 모델

  • 설비별 개별(R² -1.36) vs 통합·MACH_ID 반영(설비별 평균 R² -1.34) → 큰 차이 없음
  • 통합 모델 전체 풀링 R²(-0.84)는 개별 평균보다 나음 → 데이터 적은 설비에 통합 학습이 유리할 수 있음
  • 설비 간 성능 편차(표준편차 1.82, range 6.76)가 평균 성능보다 큼, F08(-6.74)이 평균을 크게 끌어내림

Phase 5. 종합 비교 및 보고서 작성

  • 기존 split(R²=-2.24~-2.87) vs 새 split(R²=-0.84~-1.36): 새 방식이 상대적으로 덜 나쁨
  • 완전 무작위 split 참고값 R²≈0.62 → 기존 보고 baseline R²=0.59가 leakage 조건에서 나온 값이었음을 확인
  • 결과를 Word 보고서로 정리 (배경/기준/Phase별 표/종합결론/향후방향)

결과

  1. 기존 R²=0.59는 재현 불가능한 조건(무작위 split)에서 나온 값이었음이 확인됨. 시간순으로 제대로 나누면 모든 방식에서 R²가 음수
  2. 성능 붕괴의 근본 원인은 split 방법이 아니라 드리프트 — 사출조건과 FAI20_P1의 관계 자체가 시간에 따라 변화함 (E08 sanity check로 직접 검증)
  3. 설비별 split이 글로벌 split보다 상대적으로는 개선됐지만, 근본 문제(시간순 예측 시 R²<0)는 해결되지 않음
  4. 설비별 개별 모델과 통합 모델은 성능 차이가 크지 않으나, 통합 모델이 소표본 설비에 약간 유리
  5. 남은 판단: (a) 9개 사출조건만으로는 FAI20_P1 예측에 구조적 한계가 있다고 보고 피처 확장/타겟 재정의 검토, (b) 상대적으로 나은 "새 split + 통합 모델"을 잠정 채택하고 개선 지속

 

멘토님 피드백 - 장비별로 나눠서 진행해야된다

튜터님 피드백 - ARIMA 써보기