projects

오차 해부 섹션 (Stage 3) — 질문과 검증의 사슬

오차 해부 섹션 (Stage 3) — 질문과 검증의 사슬

대질문: 남은 오차 1.4%는 왜 안 줄어드는가 — 자원의 문제인가, 정보의 문제인가? 배경: 자원(데이터·연산·튜닝)을 더 부으면 줄어드는 오차와, 입력에 정보가 없어서 못 줄이는 오차는 처방이 다르다. 진단 없이 처방하면 헛돈을 쓴다.

Q1. 오차의 구조는 무엇으로 되어 있나? (해부)

단계내용
도구Bootstrap Bias-Variance 분해 (N=50 재표본 학습)
실측Bias² 96.3% vs Variance 3.7%
판정압도적 편향 지배 — "모델이 흔들려서"가 아니라 "모델이 닿지 못해서"
결정처방 비대칭 확정: 분산 처방(앙상블·정칙화)의 이득 상한 = 3.7%의 일부

Q2. 데이터를 더 주면 줄어드나? (자원 가설 1)

단계내용
도구Learning curve — train 5%→100% 구간별 학습
실측후반 plateau: train-val gap 0.0072, 마지막 구간 Δ +0.0010 (< 0.002)
판정같은 종류의 행을 더 모아도 효과 소멸 — 데이터 양의 문제 아님
결정"더 많은 행"이 아니라 "더 많은 열(외생 변수)"이 필요하다는 방향 전환

Q3. 더 오래 학습시키면? 과적합은 없나? (자원 가설 2)

단계내용
도구Loss curve — HGB 300 iterations 추적
실측val 최고점 iter 82, 이후 train-val gap +0.0038로 정체
판정과적합 미발생(gap 미미) + 추가 반복 무효(val 개선 멈춤)
결정학습량 증가 기각 — early stopping 지점이 이미 최선

Q4. 그럼 남은 처방들의 실측은? (분산 쪽 총공세)

단계내용
도구RandomizedSearch 튜닝 / lag 확장 / Voting / Stacking / Lasso
실측튜닝 +0.0002 · Voting −0.0011 · Stacking ≈ ±0 (meta coef HGB +0.78 지배) · Lasso non-zero 4/79
판정전부 Q1의 예고(분산 몫 3.7%) 안에서 미동 — 진단과 실측 정합
결정Tuned HGB 단독을 최종 모델로 — 복잡도 추가가 이득을 못 사옴

산출물 (삼각측량)

  • 세 독립 증거의 합치: BV(편향 96.3%) + learning curve(plateau) + loss curve(과적합 없음) → 남은 오차 = 자원 부족이 아니라 정보 부족
  • 결론 연결: 개선하려면 모델이 아니라 입력을 바꿔야 — 외생 변수(프로모션·휴일·가격·날씨) 확보가 다음 단계
  • 최종: Tuned HGB, Test R² 0.9858 · SMAPE 5.20

예상 질문

  1. "잔차 ACF가 0.24 남았는데 noise라고 할 수 있나?" → 순수 noise라고 단정하지 않는다 — 시간 구조가 일부 남아 있다는 뜻이고, 현재 입력(과거 판매량)으로는 못 잡는 신호의 자리다. 그래서 결론이 "외생 변수"인 것.
  2. "튜닝이 +0.0002뿐인데 RandomizedSearch가 의미 있었나?" → 결과의 크기보다 진단의 확인이 의미 — 기본값이 이미 plateau 위에 있음을 증명했다. n=50, 상위 10% 적중 확률 1−(1−0.1)⁵⁰ ≈ 99.5%로 탐색 자체는 충분했다.
  3. "Stacking이 왜 효과가 없나?" → meta 계수(HGB +0.78, RF +0.17, Linear +0.06, SVR −0.01)가 답 — 4모델이 같은 입력에서 같은 신호를 배워 오차가 상관됨. 앙상블은 오차가 서로 다를 때만 이득.
  4. "Bias가 96.3%면 더 복잡한 모델을 쓰면 되지 않나?" → 이 Bias는 모델 용량 부족이 아니라 입력 정보의 한계(learning/loss curve가 교차 증거). 용량을 늘려도 없는 정보를 만들 수는 없다.