[개발 공부] / Brier score: 확률 예측의 거리.md

Brier score: 확률 예측의 거리

조회

2026년 6월 29일 | 개발 공부


확률 예측을 평가할 때 accuracy만 보면 중요한 정보가 한 겹 빠진다. Brier score는 binary outcome에서 모델이 낸 확률 p와 실제 결과 y를 0 또는 1로 놓고, mean((p - y)^2)를 계산하는 점수다. 예측이 맞았는지만 보는 지표가 아니라, 맞거나 틀렸을 때 모델이 얼마나 자신 있게 말했는지까지 같이 벌점으로 바꾼다.

Brier score와 calibration curve 관계를 설명하는 다이어그램
Brier score는 예측 확률과 실제 결과의 제곱 거리 평균이고, calibration curve는 그 거리가 어느 확률 구간에서 생기는지 보여 준다.

정답률이 놓치는 한 칸

예를 들어 어떤 모델이 100개 케이스에서 80개를 맞혔다고 하자. 정답률만 보면 80%다. 그런데 이 80개를 전부 0.51 확률로 맞힌 모델과, 0.95 확률로 맞힌 모델은 같은 느낌이 아니다. 반대로 틀린 20개도 0.51로 조심스럽게 틀린 경우와 0.99로 확신하며 틀린 경우는 운영 위험이 다르다. Brier score는 이 차이를 숫자 안에 넣는다.

그래서 이 지표를 처음 볼 때 나는 “정답률의 보조 지표”라기보다 확률 예측의 거리계에 가깝게 받아들이는 편이 편했다. y가 1인데 p가 0.9면 거리는 0.1이고, 제곱하면 0.01이다. y가 0인데 p가 0.9면 거리는 0.9이고, 제곱하면 0.81이다. 같은 0.9라는 숫자도 실제 결과가 무엇이냐에 따라 전혀 다른 벌점이 된다.

0.51과 0.99를 다르게 다루는 점수

Brier score가 실무에서 유용한 순간은 확률을 그대로 쓰는 의사결정이 있을 때다. 스팸 필터가 “스팸일 확률 0.52”라고 말한 뒤 보류함으로 보내는 것과, “0.99”라고 말한 뒤 바로 차단하는 것은 같은 오분류라도 비용이 다르다. 의료 triage, fraud detection, retrieval answer confidence, LLM self-verification처럼 확률이 다음 행동을 바꾸는 곳에서는 이 차이를 그냥 버리기 어렵다.

다만 낮은 Brier score 하나만 보고 모델이 좋다고 결론내리면 조금 불안하다. 클래스 비율이 한쪽으로 기울어 있으면 항상 낮은 확률만 내는 보수적인 모델도 꽤 괜찮아 보일 수 있다. 반대로 rare event를 적극적으로 잡아야 하는 작업에서는 약간의 과신이 recall을 올릴 수도 있다. 그래서 Brier score는 단독 왕좌에 앉히기보다 baseline, prevalence, threshold policy와 같이 적어야 한다.

특히 imbalance가 큰 데이터에서는 “전부 0.02라고 말하는 모델”이 생각보다 낮은 점수를 받을 수 있다. 실제 양성이 거의 없다면 제곱 오차가 작게 쌓이기 때문이다. 이 모델이 운영에 쓸 만한지는 별개 문제다. 그래서 나는 Brier score를 볼 때 양성 비율과 positive case에서의 평균 예측 확률을 같이 확인한다. 낮은 점수가 신중함인지, 그냥 아무것도 잡지 않는 소극성인지 분리해야 한다.

캘리브레이션 곡선과 붙여서 읽기

Brier score는 평균 제곱 거리라서 한 줄 요약에는 좋지만, 어디서 어긋났는지는 숨긴다. 모델이 0.2 구간에서는 잘 맞고 0.8 구간에서 과신하는지, 전체적으로 확률이 눌려 있는지, 특정 중간 구간만 흔들리는지는 점수 하나로 바로 보이지 않는다. 이때 같이 보는 것이 calibration curve다.

나는 보고서에 넣을 때 Brier score 옆에 확률 bin별 실제 양성 비율을 붙이는 쪽이 안전하다고 느낀다. 예측 확률이 0.7 근처인 케이스를 모았을 때 실제로 70% 정도 맞으면 잘 보정된 쪽이고, 45%만 맞으면 과신한 쪽이다. 이 그림이 있으면 “점수는 나빠졌지만 높은 확률 구간의 과신이 줄었다” 같은 해석도 가능해진다. 평균값만 보면 놓치기 쉬운 변화다.

AI 평가표에 붙일 때의 기준

LLM 평가에서는 모델이 confidence를 직접 내지 않는 경우가 많다. 그래도 쓸 수 있는 대체 확률은 있다. judge model이 낸 pass probability, retrieval answer verifier의 entailment probability, classifier head의 positive probability, 혹은 여러 self-consistency sample에서 같은 답이 나온 비율 같은 값이다. 중요한 것은 이 값을 사후 점수처럼 꾸미지 않고, 실제 의사결정 전에 쓰는 확률로 고정하는 것이다.

여기서 자주 나는 실수는 threshold를 test set에서 다시 고르는 것이다. 확률 보정과 Brier score를 본다고 해놓고, test 결과를 보며 “이 구간만 자르면 좋아 보인다”고 손대면 평가가 금방 흐려진다. validation에서 정한 calibration method, binning, threshold를 test에 그대로 들고 가야 한다. 그래야 Brier score가 모델의 미래 행동을 평가하는 숫자로 남는다.

또 하나는 확률의 출처를 섞는 실수다. 어떤 행은 classifier probability, 어떤 행은 LLM judge의 점수, 어떤 행은 vote ratio를 넣으면 같은 Brier score라도 의미가 달라진다. 확률이 만들어진 방법, 보정에 쓴 데이터, 실제 action과 연결되는 threshold를 같은 표 안에 묶어야 나중에 비교가 가능하다. 숫자 하나가 예쁘게 나오는 것보다, 다음 실험에서도 같은 방식으로 다시 계산할 수 있는지가 더 중요하다.

내가 남기는 기록 형식

간단한 실험표라면 나는 네 줄만 적어도 꽤 충분하다고 본다. 첫째, Brier score와 비교 baseline. 둘째, accuracy나 AUC처럼 기존 분류 성능. 셋째, calibration curve 또는 bin별 실제 빈도 표. 넷째, decision threshold와 그 threshold가 정해진 데이터 split이다. 이 네 가지가 있으면 “확률은 좋아졌는데 decision은 나빠졌는가”, “정답률은 같지만 과신이 줄었는가”를 나중에 다시 볼 수 있다.

Brier score는 멋진 지표라기보다, 확률이라는 말을 꺼낸 순간 따라오는 최소한의 회계 장부에 가깝다. 모델이 0.9라고 말했으면 그만큼의 책임을 지게 하고, 0.55라고 말했으면 조심스럽게 말한 만큼의 거리를 계산한다. 이런 기록이 있으면 다음 threshold 조정도 감으로만 움직이지 않는다. 나는 이런 점수가 평가표에 하나씩 더 붙을수록, 모델 비교가 “맞았다/틀렸다”에서 조금 더 운영에 가까운 언어로 내려온다고 느낀다.

댓글

홈으로 돌아가기

검색 결과

"" 검색 결과입니다.