FirstCut — 모의고사 1등급컷을 베이지안으로 예측하기


모의고사가 끝나면 모두가 같은 걸 궁금해한다 — 이번 1등급컷은 몇 점일까? 보통은 커뮤니티 눈치와 작년 데이터로 어림한다. FirstCut은 그걸 모델로 한다.

왜 단일 예측이 아니라 분포인가

“1등급컷 = 96점” 같은 점추정은 틀리기 쉽고, 얼마나 못 믿을지를 안 알려준다. 등급컷은 본질적으로 점수 분포에서 나온다. 그래서 점수대별 응시자 비율을 Dirichlet-Multinomial로 추정했다 — 표본이 적은 과목은 사전분포가 잡아주고, 데이터가 쌓일수록 그쪽으로 끌려간다(베이지안 업데이트). 결과는 컷 한 점이 아니라 컷이 어디쯤 형성될지 + 그 불확실성으로 나온다.

들어 있는 것

  • 예측(predict) — 과목별 등급컷 분포 추정
  • 백테스트(backtest) — 과거 회차로 모델이 얼마나 맞았는지
  • 편향 비교(bias-comparison) — 커뮤니티 어림짐작 vs 모델

만든 방식

백엔드는 FastAPI, 모델은 Dirichlet-Multinomial을 직접 구현. 무거운 계산은 미리 캐시해두고 응답은 가볍게. 프론트는 이 사이트(Astro)에 얹었다.

직접 보기 →

(이 글은 초안 — 모델 설계와 데이터 처리를 더 풀어 쓸 예정.)