비운영 참조
평균으로 당기기
계층적 경험 베이즈 축소
한 줄 결론 — 적은 표본의 극단값을 공통 평균 쪽으로 완화하는 후보다. 채택되지 못한 채 2026-08-19 결정으로 비운영 참조가 됐다.
왜 믿나
학습은 평가일보다 앞선 날짜만 쓰고, 성적은 뒤 날짜에서만 잰다. 그래도 관측일과 만석 표본이 관문에 닿기 전에는 잠정으로 읽고 순위와 승자를 정하지 않는다. 관문 기준은 평가 규약에 있다.
숫자의 원장은 아래 동결 이력 성적이다. 페이지를 열면 일일 평가 API에서 마지막 이력을 한 번 받아오고, 실패하면 배포 시점 값과 스탬프가 그대로 남는다.
이 모델의 일일 채점은 2026-08-19 평가일까지로 끝났다. 08번(A18)을 단일 운영 모델로 확정하며 evaluation-v3에서 도입한 결정이고, 현재 evaluation-v6도 이어받는다. 새 점수는 만들지 않으며 마지막 값과 중단 시점은 이력에 남는다.
동결 이력 성적
상태 잠정 · 역할 비운영 참조 · 배포 시점 값 · 일일 평가 2026-08-16분 · 생성 08-17 00:15 KST
전체 표본 — 평가 18,055행 · 만석 173건 · 비만석 17,882건
| 지표 | 오늘 값 | 읽는 법 |
|---|---|---|
| Brier | 0.0097 | 얼마나 빗나갔나 — 예측확률과 실제 0·1의 제곱 오차 평균. 낮을수록 좋다. |
| 만석 누락률 | 100.0% | 실제 만석 중 확률 50% 미만으로 말한 비율. 낮을수록 좋다. |
| ROC-AUC | 0.827 | 만석·비만석 한 쌍에서 만석에 더 높은 확률을 줄 가능성. 높을수록 좋다. |
| Log loss | 0.0479 | 확신하고 틀릴수록 커지는 벌점. 낮을수록 좋다. |
| ECCE-MAD | 0.0075 | 확률 오차를 누적했을 때 가장 벌어진 폭. 낮을수록 좋다. |
| PR-AUC | 0.057 | 드문 만석을 위쪽으로 모으는 힘. 높을수록 좋다. |
| 확률 쏠림 | 0.0075 | 평균 예측확률에서 실제 만석률을 뺀 값. 0에 가까울수록 좋다. |
| 비용 1:1 | 0.0096 | 잘못 안심과 과한 경고를 1:1로 둔 평균 비용. 같은 비용 가정끼리만 비교한다. |
| 비용 2:1 | 0.0200 | 잘못 안심을 과한 경고의 2배 비용으로 둔 평균 비용. |
| 비용 4:1 | 0.0449 | 잘못 안심을 과한 경고의 4배 비용으로 둔 평균 비용. |
점수 50 = 시간순 과거 만석률 기준 모델 · 자세한 기준은 평가 규약
구간별 성적
| 구간 | 행 | 만석 | Brier | 만석 누락 | ROC-AUC |
|---|---|---|---|---|---|
| 주말 | 18,055 | 173 | 0.0097 | 100.0% | 0.827 |
| 출근 | 2,702 | 0 | 0.0005 | — | — |
| 퇴근 | 4,195 | 12 | 0.0050 | 100.0% | 0.958 |
| 그 외 | 11,158 | 161 | 0.0137 | 100.0% | 0.860 |
| 노선 1650 | 7,532 | 160 | 0.0195 | 100.0% | 0.815 |
| 노선 3330 | 10,523 | 13 | 0.0027 | 100.0% | 0.879 |
| 노선 1650·출근 | 970 | 0 | 0.0003 | — | — |
| 노선 1650·퇴근 | 1,694 | 12 | 0.0068 | 100.0% | 0.969 |
| 노선 1650·그 외 | 4,868 | 148 | 0.0277 | 100.0% | 0.837 |
| 노선 3330·출근 | 1,732 | 0 | 0.0007 | — | — |
| 노선 3330·퇴근 | 2,501 | 0 | 0.0039 | — | — |
| 노선 3330·그 외 | 6,290 | 13 | 0.0028 | 100.0% | 0.930 |
평가 행이 없는 구간 1개: 평일
아래 해설의 실측 수치는 연구 구간 기록(M1–M3 · 2026-08-15 동결) 기준이다. 오늘 수치는 위 표가 매일 갱신한다.
Q. 이 모델은 지금 무엇을 계산하나?
관측이 적은 노선·정류장·시간 집단에서도 출발 뒤 만석 확률 추정이 한두 사건에 과도하게 출렁이지 않게 하는 문제를 다룬다.
Q. 어떻게 계산하나?
현재 운영 수집기 관측에서 제외 규칙을 통과한 사건만 남기고 같은 통과 사건은 한 번만 센다.
평가일보다 앞선 학습 날짜에서 사전에 고정한 집단들의 만석·비만석 분포를 모아 베타 사전분포의 α와 β를 추정한다. 평가 구간의 라벨은 이 단계에 넣지 않는다.
한 집단의 만석 건수를 x, 적격 사건 수를 n이라 두고 사후 평균 (x+α)/(n+α+β)를 만석 확률로 계산한다. n이 작을수록 공통 경향의 영향이 크고 n이 커질수록 그 집단의 관측이 더 많이 반영된다.
만든 확률을 뒤 한국 표준시 날짜의 라벨과 맞춰 본다. 검증 결과를 본 뒤 집단이나 사전분포를 다시 고쳐 같은 구간의 점수를 내지 않는다.
이 방식의 강점
- 표본이 적은 집단의 관측 비율이 한두 사건 때문에 극단으로 치우치는 현상을 줄인다.
- 모든 집단을 하나로 합치지 않으면서 공통 자료를 나눠 쓴다.
- 확률이 평균 쪽으로 이동한 이유를 집단 표본과 사전분포로 설명할 수 있다.
Q. 만석을 한 번도 못 본 셀은 위험 0%인가?
아니다. 코퍼스 학습분의 노선×정류장×30분 셀은 833개다. 이 중 281개(33.73%)는 표본이 10건 이하다. 719개(86.31%)는 만석을 한 번도 못 봤다. 학습 만석률 자체가 705/12,065=5.84%라서, 표본이 몇 건뿐이면 0회 관측이 흔하다.
위치와 시간은 버리기 아까운 신호다. 아무것도 안 본 기준선 AUC는 .5000, 앞차 한 대만 본 기준선은 .7187, 정류장·30분 셀 기준선은 .9613이었다. 문제는 셀을 쓰느냐가 아니다. 얇은 셀을 얼마나 믿느냐다.
무축소 셀 비율은 만석 0건인 셀에 확률 0을 냈다. 검증 log loss는 .1318이었다. 노선 평균에 해당하는 의사표본 1개를 섞자 .1033으로 줄었다. 이 진단 때문에 축소추정이 본 후보로 올라왔다.
비유하면 학생 한 명만 시험을 본 반의 평균을 그 한 점수로 확정하지 않는 것과 같다. 학생이 적은 반은 학교 평균을 조금 섞는다. 학생이 많아지면 그 반의 점수를 그대로 믿는다.
전역 평균으로 노선을 안정시키고, 노선 평균으로 정류장×30분 셀을 안정시킨다.
Q. 어디로, 얼마나 당기나?
Q. 한 칸은 무엇인가?
한 셀은 노선×station_id×로컬 30분대다. 셀 안에서 출발 후 잔여석이 0인 사건 수 m과 전체 사건 수 n을 센다. 도착 시점 0석은 쓰지 않는다. 하차 뒤 자리가 생길 수 있어서다. remainSeatCnt=-1도 결측이라 뺀다.
Q. 당김의 기준은 무엇인가?
먼저 전체 학습분에서 전역 만석률을 구한다. 만석과 비만석에 .5건씩 더하는 Jeffreys 보정을 쓴다. 노선 만석률은 전역 만석률 쪽으로 의사표본 4개만큼 당긴다. 마지막으로 각 셀을 그 노선 만석률 쪽으로 당긴다.
셀 예측식은 하나다.
α는 노선 평균이 몇 건의 표본처럼 작용하는지 정한다. 실제 후보는 .5, 1, 2, 4, 8, 16, 32, 64를 날짜 순방향 교차검증으로 겨뤘다. 선택값은 .5였다. 노선 평균을 반 건만 섞는 약한 축소다.
Q. 왜 ‘경험적’ 베이즈인가?
사전평균 p_route를 사람이 정하지 않고 같은 학습 데이터의 노선·전역 빈도에서 구하기 때문이다. beta-binomial 방식으로 노선 평균을 의사표본처럼 보고 셀의 만석/비만석 횟수와 합친다. 사후분포 전체가 아니라 사후평균 하나만 내보낸다.
Q. 처음 보는 셀은 어떻게 하나?
정확한 셀이 없으면 노선×정류장 → 노선×30분대 → 노선 → 전역 순서로 내려간다. 이미 본 셀은 표본이 1건이어도 이 폴백을 쓰지 않는다. 그 셀의 비율과 노선 평균만 섞는다.
출력은 만석 확률 p_full이다. 사용자에게 보이는 탈 확률은 별도 모델이 아니라 1-p_full이다.
| 셀 | 무축소 | 축소 후 |
|---|---|---|
| 태영아파트 0/5 | 0% | 0.625% |
| 롯데백화점.범계역 14/23 | 60.87% | 59.69% |
같은 α=.5라도 표본 수가 다르면 당기는 폭이 달라진다.
Q. 실제 숫자는 어떻게 바뀌나?
1650번 태영아파트(station_id 209000243), 18:00~18:30 셀을 보자. 전부 학습 데이터에서 계산한 값이다.
- 전체 학습분은 12,065건, 만석 705건이다. Jeffreys 보정을 거친 전역 만석률은 5.847%다.
- 학습분의 1650번은 4,331건 중 298건이 만석이다. 전역 평균을 의사표본 4개만큼 섞은 노선 만석률은 6.880%다.
- 이 셀은 5건 중 만석 0건이다. 무축소 값은 0%다.
- 선택된
α=.5를 넣으면(0 + .5×.068797) / (5+.5) = .006254다. 만석 확률 0.625%, 탈 확률 99.375%다.
검증 라벨은 이 계산에 넣지 않았다. 뒤 검증에서는 같은 셀 4건 중 1건이 만석이었다. 한 셀의 4건으로 모델 전체를 판정할 수는 없다. 다만 학습의 0/5가 위험 0이라는 뜻은 아니었다.
표본이 두꺼우면 덜 움직인다. 3330번 롯데백화점.범계역 07:00~07:30 셀은 학습 23건 중 14건이 만석이었다. 무축소 60.87%가 축소 뒤 59.69%가 됐다.
재료 한눈에
쓰는 재료는 네 가지다. 출처 필드까지 아래 표가 정본이다.
쓰는 재료 4개 — 출처 필드까지
| 재료 | 종류 | 어느 API의 어느 필드 |
|---|---|---|
노선 (route)직접 수집은 calls.jsonl.route_name, 코퍼스는 route.name을 모델 범주로 읽고 같은 route.routeName 마스터 행을 찾는다. 수집기 설정의 route.route_id와 원응답 routeId는 원문에 남는다.주의 — 현재 S1 구현은 실제로 routeName으로 마스터를 찾는다. msgBody.busLocationList[].routeId를 모델의 route로 복사하지 않는다. 대상 두 노선 밖으로 넓힐 때는 ID 검증이 필요하다. | 응답 원본 | msgBody.busLocationList[].routeId; 운영 수집기 route.name, route.route_id; S1 E4 calls.jsonl.route_name; 코퍼스 route.name; route.routeName, route.routeId; S1 routeGBIS 버스위치정보 getBusLocationListv2 + 우리 수집기 노선 메타데이터 + 제한 코퍼스 + GBIS route 마스터 |
목표 정류장 ID (station_id)차량별 정규화 위치가 전진한 끝점의 station_seq를 만들고, 같은 노선의 staOrder와 맞춰 stationId를 붙인다.주의 — 응답의 msgBody.busLocationList[].stationId를 목표 통과 정류장 ID로 복사하지 않는다. 그 값은 응답 시점 차량 위치의 정류장이다. | 파생 | msgBody.busLocationList[].vehId, msgBody.busLocationList[].stationSeq, msgBody.busLocationList[].stateCd; routestation.routeName, routestation.staOrder, routestation.stationId; S1 station_idGBIS 버스위치정보 getBusLocationListv2 + GBIS routestation 마스터 + S1 통과 사건 빌더 |
KST 30분대 (query_half_hour)응답 수신시각을 KST로 바꾸고 hour*2 + 1[minute>=30]으로 0~47을 만든다.주의 — msgHeader.queryTime과 HTTP Date는 시간 계산에 쓰지 않는다. 코퍼스 collectedAt은 본문 파싱 뒤 시각이다. | 파생 | timing.response_received_at.kst, timing.response_received_at.utc; S1 E4 response_received_kst, response_received_utc; 코퍼스 collectedAt; S1 query_half_hour우리 수집기 응답 수신시각; 제한 코퍼스는 수집기가 붙인 collectedAt |
출발 후 만석 라벨 (label_full)정류장 s 통과 뒤 같은 차량에서 (stateCd,stationSeq)=(2,s),(0,s),(1,s+1) 중 처음 잡힌 유효 좌석값을 찾는다. 0이면 1, 양수면 0이다.주의 — remainSeatCnt=-1은 결측이다. (stateCd,stationSeq)=(1,s)는 도착 상태라 라벨이 아니다. 예측 시점 뒤에 생기므로 학습 정답으로만 쓴다. | 파생 | msgBody.busLocationList[].vehId, msgBody.busLocationList[].stationSeq, msgBody.busLocationList[].stateCd, msgBody.busLocationList[].remainSeatCnt; timing.response_received_at.kst, timing.response_received_at.utc; S1 passage_events.label_full, label_remain_seatsGBIS 버스위치정보 getBusLocationListv2 + 우리 수집기 응답 수신시각 + S1 통과 사건 빌더 |
지금은 안 쓰는 재료 5개
- 차량 정원·점유율 —
TBBMSVEHINFOM.SEAT_RDNG_PSN_CNT; 점유율 후보식1-msgBody.busLocationList[].remainSeatCnt/TBBMSVEHINFOM.SEAT_RDNG_PSN_CNT20일 코퍼스 차량키가plateNo우선 HMAC이라 외부 정원과 조인된 차량이 0/77이다. 기존 231,048행의capacity_exact도 모두 0이다. 관측 최대 잔여석은 정원의 하한일 뿐 고정 정원이 아니다. 라벨은 출발 후 좌석이 0인지에 정원이 필요 없다. 프로토타입의defaultSeatCapacity=80은 분포 배열 상한이며 점유율 분모가 아니다. - 혼잡도 — GBIS getBusLocationListv2
msgBody.busLocationList[].crowded공식 제공 노선유형은 13·15·23이고 대상 노선은 11이다. 직접 수집분에서 같은 잔여석 값에 다른 코드가 붙은 값이 26개 나와 잔여석만의 전역 함수라는 해석은 반증됐다. 다만 같은(vehId, remainSeatCnt)에서는 충돌이 0셀이고 180초 이하 인접 관측 81,147쌍에서crowded만 바뀐 연속쌍도 0건이라 차량별 임계화일 가능성이 남는다. 산식은 미확정이고 아직 특징으로 써 보지 않았다. - 현재 상류·지난 버스 상태 —
msgBody.busLocationList[].remainSeatCnt,msgBody.busLocationList[].stateCd,msgBody.busLocationList[].stationSeq,msgBody.busLocationList[].vehId에서 만드는 S1upstream_*,passed_*,previous_passage_*,route_seat_*이 후보는 역사적 시공간 위험만 비교하려고 실시간 스냅샷 재료를 읽지 않는다. - 도착 ETA — GBIS getBusArrivalListv2
msgBody.busArrivalList[].predictTime1,msgBody.busArrivalList[].predictTime2,msgBody.busArrivalList[].predictTimeSec1,msgBody.busArrivalList[].predictTimeSec2; getBusArrivalItemv2msgBody.busArrivalItem.predictTime1,msgBody.busArrivalItem.predictTime2,msgBody.busArrivalItem.predictTimeSec1,msgBody.busArrivalItem.predictTimeSec2공급자가 만든 예측값을 다시 설명변수로 배우는 구조가 된다. 분·초 필드 관계도 실측 6쌍 중 2쌍에서 맞지 않았다. v1 후보 입력에서 뺐다. - API queryTime 파생 시간 — GBIS getBusLocationListv2
msgHeader.queryTime; HTTP 응답 헤더Date응답 수신 시각과 어긋나는 반증 실측이 있어 감사 원문만 보존하고 나이·속도·헤드웨이·분할에 쓰지 않는다. 실측 수치는 평가 규약에 있다.
M3는 직접 수집분만 쓰고 공식 이력·제원으로 정원·차종 ablation을 실행했다. 직접 관측 고유차량 55/62대에 공식 이력이 연결됐다. 공유 페이지에는 차량번호와 비공개 조인 식별자 값을 싣지 않는다.
새 지표에서 명백한 개선으로 판정한 조합은 0개다. 표본 관문 미달이라 쓸모없다는 뜻은 아니다. 관측 최대 잔여석으로 정원을 추정한 행은 0건이며 계속 금지한다.
Q. 보정은 실제로 적용됐나?
이 모델 자체에는 보정층을 얹지 않는다. 축소로 만든 확률을 그대로 낸다. 확률 보정은 별도 후보 숫자 다듬기 · Platt 확률 보정이 맡는다. 보정 눈금이 뒤 날짜로 옮겨가지 않았던 실측은 아래 ‘언제 실패하나’에 있다.
Q. 언제 실패하나?
- 학습 날짜가 적거나 만석이 특정 날짜에 몰리면 공통 경향 자체가 불안정해진다.
- 실제로 다른 집단을 같은 사전분포로 묶으면 중요한 노선·정류장·시간 차이를 지나치게 줄일 수 있다.
- 운영 수집기 실패나 검열이 특정 구간에 몰리면 관측된 공통 평균이 운영 전체를 대표하지 못한다.
- 운행 정책, 노선, 정류장 순서, 수집 방식이 바뀌면 이전 공통 경향이 새 구간에 맞지 않을 수 있다.
- 처음 보는 집단의 확률은 공통 평균에 크게 의존하므로 해당 집단의 직접 성능 근거로 쓰면 안 된다.
- 평가 구간에 만석 또는 비만석이 없으면 순위를 가르는 일부 지표는 정의되지 않는다.
관측이 적은 구간은 공통 평균 쪽으로 더 많이 당겨진다. 그 구간의 현장 차이가 작다는 증거는 아니다. 관측이 많은 구간은 자체 비율이 더 반영되지만, 그 자체가 뒤 날짜 검증을 통과했다는 뜻은 아니다.
그 밖의 약점도 남는다.
- 정확한 셀이 한 번이라도 관측되면 정류장 평균이나 시간 평균을 더 섞지 않는다. 표본 1건 셀도 노선 평균과만 섞는다.
- 이웃 정류장과 이웃 시간의 연속성을 쓰지 않는다. 정류장 순번을 ±1 옮겨도 AUC .9100/.9113이 남았지만 이 정보는 버린다.
- 모든 노선·셀에 같은
α하나를 쓴다. 셀마다 다른 흔들림을 따로 배우지 않는다. - 새 셀 성능은 아직 재지 못했다. 코퍼스 validation의 새 셀은 2행·만석 0건뿐이다.
- 직접 수집분에서는 AUC 점추정이 7종 중 가장 낮았다. train 1,081건·만석 40건, validation 443건·만석 14건에서 ECE .0328, AUC .8527이고 네 후보에 유의하게 밀렸다.
Q. 축소했는데 왜 보정은 나빠졌나?
S1 층화 기준선은 의사표본 1개를 섞었다. 경험적 베이즈가 고른 α=.5는 그보다 약한 축소다. 날짜 순방향 2-fold에서 ECE·Brier·log loss의 합이 .188043으로, α=1의 .188211보다 아주 조금 낮아 선택됐다. ECE만 고른 결과가 아니다.
ECE·Brier·log loss는 낮을수록 좋고 AUC는 높을수록 좋다.
| 모델 | ECE | Brier | log loss | AUC |
|---|---|---|---|---|
| 층화 기준선 | .0063 | .0327 | .1033 | .9613 |
| 경험적 베이즈 raw | .0070 | .0327 | .1024 | .9613 |
log loss는 .0009 좋아졌지만 ECE는 .0007 나빠졌다. 0% 같은 극단값을 피한 이득과 전체 확률 눈금의 작은 편향이 서로 다른 지표에 잡혔다.
후처리는 더 분명히 실패했다. OOF는 각 날짜를 그보다 앞선 날짜로만 예측해 만든 값이다. 학습 OOF 10,236건·만석 572건에서는 ECE가 raw .0128에서 Platt .0064, isotonic .0016으로 좋아졌다. 하지만 뒤 검증 10,040건·만석 583건에서는 raw .0070이 Platt .0134, isotonic .0131로 나빠졌다. 평균 예측도 raw 5.4829%에서 4.4684%·4.4963%로 내려가 관측 5.8068%를 크게 밑돌았다. 앞 구간에서 배운 눈금이 뒤 날짜로 옮겨가지 않은 것이다. 날짜별 분포 이동, 보정 표본 구성, isotonic의 60개 계단이 각각 얼마나 영향을 줬는지 분리한 실측은 아직 없다.
| 변형 | ECE | 평균 예측 | 관측 만석률 |
|---|---|---|---|
| EB raw | .0070 | 5.4829% | 5.8068% |
| EB Platt | .0134 | 4.4684% | 5.8068% |
| EB isotonic | .0131 | 4.4963% | 5.8068% |
raw보다 Platt·isotonic의 평균 예측이 관측 만석률에서 더 멀어졌다.
Q. 프로토타입과 무엇이 다른가?
- 프로토타입의 화면 탑승률은
정류장×평일/주말×30분에서 마지막 스냅샷의 비만석 비율1-z/n이었다. 이 모델의 한 행은 버스 한 대의 정류장 통과 사건이고, 정답은 출발 후 0석이다. - 프로토타입은 비율을 그대로 쓰고
n<10이면 추천을 멈췄다. 이 모델은 얇은 셀도 노선 평균과 섞고, 새 셀은 정류장·시간·노선·전역 순으로 폴백한다. - 프로토타입의 화면 탑승률과 차량별 좌석 예보는 서로 다른 계산이었다. 이 모델은 만석 확률 하나만 내고 탈 확률은
1-p_full로 바꾼다. 남을 좌석 수·대기 인원·이동 추천은 계산하지 않는다. - 프로토타입 좌석 예보는 현재 잔여석과 정류장별 수요분포를 흘렸다. 이 모델은 현재 좌석·앞차·대기열을 보지 않는 정류장·시간대 빈도 모형이다.
- 프로토타입 좌석 예보의 공통 상한 80석도 여기 없다. 이 모델은 정원·점유율·
crowded를 모두 입력에서 뺐다.
Q. 개인정보와 미래 정답은 어떻게 막나?
- 공개 평가 파일에는 집계 표본, 공식 노선·정류장, 모델 성능만 남긴다.
- 차량 결합 키와 번호판 값은 공개 응답에 포함하지 않는다.
- 개별 차량의 시각·장소 이동 사례와 원본 응답은 공개하지 않는다.
- 공통 경향과 모델 설정은 평가일보다 앞선 자료로만 정한다. 평가 구간 라벨을 사전분포, 집단 정의, 하이퍼파라미터 선택에 되먹이지 않는다.
관문 기준·구간 정의·지표 정의·학습/평가 분할·라벨 규칙·검열 처리 규칙은 평가 규약에 있다.
M3 연구 이력 — 2026-08-15 동결
동결된 연구 기록이다. 위 오늘 성적과 합치거나 변화율로 읽지 않는다. 당시 문장의 ‘최신’·‘권위값’은 현재 공개 평가를 뜻하지 않는다.
직접 API 응답 582개를 고정해 train 604행·만석 28건, validation 1,901행·만석 8건·날짜 1일로 나눴다.
모델 7개를 paired bootstrap 5,000회와 Holm 21쌍으로 비교했다.
결정은 no_winner, 승자 없음이다. 최소 관문은 validation 날짜 10일·만석 100건이다.
validation 양성 20건 미만이면 만석 누락률·PR-AUC·ROC-AUC 수치를 억제한다. 아래 M1·M2 수치는 역사 기록이며 최신 결론과 섞지 않는다.
M3 직접 수집분 성적
68/32 이동 분할이 아니라 M2 마지막 응답 뒤의 고정 미래구간을 썼다. 검증 1,901행·만석 8건· 하루·정류소×날짜 129군집, paired_station_id_x_query_date_cluster_bootstrap 5,000회다.
A · 평균으로 당기기 · raw
운영 후보 · M3 고정 미래구간 기술값 · 낮을수록 좋음
| 지표 | 값 (95% 구간) |
|---|---|
| Brier · 얼마나 빗나갔나 | 0.0096[0.0046, 0.0157] |
| ECCE-MAD · 확률 오차가 쌓이나 | 0.0326[0.0204, 0.0469] |
| log loss · 확신하고 틀린 벌점 | 0.0456[0.0272, 0.0664] |
| 만석 누락 @ .5 · 만석을 안심으로 놓쳤나 | 만석 20건 미만 · 수치 억제 |
| 1:1 결정비용 @ .50 | 0.0042[0.0000, 0.0099] |
| 2:1 결정비용 @ .33 | 0.0210[0.0021, 0.0481] |
| 4:1 결정비용 @ .20 | 0.0679[0.0246, 0.1203] |
동결 당시 표본은 validation 날짜 1/10일 (미달), 만석 8/100건 (미달)이다. 만석 민감 지표는 양성 20건부터 숫자를 내며 동결 시점에는 수치 억제였다. 관문은 검토 최소선이지 충분조건이 아니다.
모델별 보정 관문은 미달 — 적격 적용 0/3개 · raw fallback 5,703행이다. 비억제 모델쌍×지표 bootstrap 유효비율 최소값은 100.0%(기준 90%), 운영 후보 비용 방향 뒤집힘은 0/15쌍이다. 마지막 세 날짜 누적 Brier도 승자 전에 확인한다.
하루 조건부 기술 구간과 Holm 계산상 0을 벗어난 Brier 쌍은 10/21쌍이지만 날짜 일반화나 우열 판정이 아니다. 최종 판정은 0/21쌍이다. 만석 8건이면 누락률이 한 사건당 12.5%p 움직인다. PR-AUC·ROC-AUC도 만석 20건 미만이면 억제하며 순위에 쓰지 않는다.
1–4일은 관측 날짜 안 조건부 기술값, 5–9일은 진단 기술값이다. 검증 10일부터도 모든 관문을 통과해야 추론과 승자 선언을 검토한다. 경로·수집구간·날짜·라벨 규칙·관측간격 다섯 축은 한 축씩 기록하고 90초 초과는 검열한다. ECCE 동률은 독립 동결 nonce의 SHA-256 순서로 재현하고 전 행 누적곡선을 남긴다. 이번 재실행은 registry 후보 3,054건 중 기존 nonce 3,054건을 재사용했고 신규는 0건이다.
직접 수집분 재대결(M2)은 21쌍 중 16쌍을 못 가려 승자를 정하지 않았고 채택·탈락도 없었다. 코퍼스 ECE·AUC 표와 초기 직접 수집분 수치, 68/32 이동 분할은 M1·M2 당시 기록이며 최신 결론이 아니다.
아래는 이전 공개 평가의 기록이다. 현재 점추정과 합치지 않는다.
이전 공개 평가
| 평가 | 평가 규격 | 행 | Brier |
|---|---|---|---|
| eval-20260815-7e03dc730de91f34 | evaluation-v1 | 2,894 | 0.009100 |
출처와 검증 장부
| 동결 이력 · 마지막 보고서 | daily-20260816-86afbfc70dbb876b · 2026-08-16분 · 생성 08-17 00:15 KST |
|---|---|
| 모델 버전 | empirical-bayes-v1+fd482d90 |
| 이력 평가 규격 | evaluation-v2 · 구간 규격 cohort-v1 · 점수 규격 composite-score-v1 · v2 현재값이 아님 |
| 이력 · 공개 평가 | eval-20260815-f0f59cf25a9c3503 · 자료판 current-7cf2243ffe6c4cdc · 모델 버전 empirical-bayes-v1+cca34cdb · 이전 평가 eval-20260815-7e03dc730de91f34(evaluation-v1) |
| 이력 검증 해시 | 규약 43913ebf483a48a02f6a83e01181a01ccf8bc10a728a38b9e838031ac9dbeec5구현 cca34cdb16f663754e630e9f41abd26b6b441a19dd5002291f18af63f9a21a9a평가 d133e3d6c2db757c5fa780d5ffb19e6998b2dcefc049b844a8faebd64e14a817 |