🎯 Что такое калибровка модели

Кратко

Калибровка — это процесс преобразования сырого скора модели (например, выхода LightGBM или нейросети) в честную вероятность выигрыша. Без калибровки модель может быть точной в ранжировании (AUC), но неправильно оценивать абсолютные вероятности.

Почему это важно

Любая оценка позиции (LightGBM-скор, выход сети, HunterEval) — это ещё не вероятность. Модель может хорошо отделять сильные позиции от слабых (высокий AUC), но при этом завышать или занижать абсолютные значения вероятностей.

Пример: модель может предсказывать P(win) = 0.9 для позиций, где реальный win-rate = 0.7. Без калибровки эти оценки будут систематически смещены.

Как калибровать

Метод: логистическая регрессия

Классический подход — логистическая регрессия, которая подгоняет отображение eval → P(win) на исходах реальных партий.

Формула:

P(win) = 1 / (1 + exp(-(a * eval + b)))

Где a и b — параметры, подбираемые на данных.

Альтернатива: изотоническая регрессия

Если форма кривой нестандартная (не монотонная или не линейная в логитах), можно использовать изотоническую регрессию, которая гарантирует монотонность результата.

На чём калибруем

Ключевой момент

Эмпирика по всем игрокам отвечает «как выигрывают в среднем», а аналитика фиксирует референс: win-rate сильных игроков.

Калибровать нужно на партиях сильных игроков (фильтр/взвешивание по рейтингу), иначе prior и эмпирика будут мерить разное, и сглаживание начнёт их «спорить».

С тремя источниками данных (DiceChess.com, play.jc.id.lv, Beturanga) это важно вдвойне: пулы игроков разные — источник и рейтинг должны быть фильтрами калибровки.

Пример из практики

В нашем проекте:

  • Модель kcpdice_full_20260809 уже откалибрована (Brier score 0.2132 до и после калибровки)
  • Изотоническая пост-калибровка не потребовалась — модель уже даёт честные вероятности

Связанные понятия