Насколько точен рейтинг ENSI.Score
64.0%
прогнозов, зафиксированных сайтом до матча, сбылись
Измерено на 815 матчах, сыгранных с 26 сентября 2025 г. по 25 сентября 2026 г.. Пересчитано 25 сентября 2026 г. по отчёту №169.
Цифры в сравнении с монеткой
| Метрика | ENSI.Score | Монетка |
|---|---|---|
| Точность | 0.6405 | 0.5000 |
| Оценка Брайера | 0.2229 | 0.2500 |
| Log-loss | 0.6365 | 0.6931 |
Точность считает матчи, в которых победил фаворит. Брайер и log-loss оценивают саму вероятность, и чем они ниже, тем лучше: прогнозист, который сказал 90 % и ошибся, наказывается сильнее того, кто сказал 51 % и тоже ошибся.
| Игра | Матчи | Точность | Оценка Брайера | Log-loss |
|---|---|---|---|---|
| CS2 | 609 | 0.6273 | 0.2275 | 0.6473 |
Дисциплина появится здесь, когда у неё наберётся 300 собственных учтённых прогнозов.
Какую часть года это покрывает
22064 = 815 + 36 + 21213
Из матчей периода учесть можно было 22064: у 815 была вероятность, зафиксированная до начала, у 36 — вероятность, которая перестала описывать матч, а у 21213 её не было вовсе.
Ничьи и матчи, решённые техническим поражением, учитываются отдельно от этой суммы: таких 1197, и ни по одному из них вероятность нельзя проверить результатом.
70 % — это семь раз из десяти?
Все прогнозы за год, отсортированные по выданной вероятности и разбитые на десять равных групп. Группа на диагонали оказывалась права ровно так часто, как обещала; полосы — диапазон, с которым группа ещё согласуется на уровне 95 %, и они широкие, потому что год матчей — это немного.
| Группа | Матчи | Прогноз | Фактически выиграно | Разрыв, п. п. | 95-процентный интервал |
|---|---|---|---|---|---|
| 1 | 82 | 25.2% | 26.8% | +1.7 | 18.4% – 37.3% |
| 2 | 82 | 36.4% | 40.2% | +3.8 | 30.3% – 51.1% |
| 3 | 82 | 42.8% | 47.6% | +4.7 | 37.1% – 58.2% |
| 4 | 82 | 46.9% | 54.9% | +8.0 | 44.1% – 65.2% |
| 5 | 82 | 50.8% | 61.0% | +10.2 | 50.2% – 70.8% |
| 6 | 81 | 55.4% | 58.0% | +2.6 | 47.2% – 68.2% |
| 7 | 81 | 60.2% | 60.5% | +0.3 | 49.6% – 70.4% |
| 8 | 81 | 65.4% | 69.1% | +3.7 | 58.4% – 78.1% |
| 9 | 81 | 72.7% | 72.8% | +0.1 | 62.3% – 81.3% |
| 10 | 81 | 82.7% | 84.0% | +1.3 | 74.5% – 90.4% |
Как получается цифра
За пять–двадцать минут до начала матча вероятность победы первой команды рассчитывается по двум рейтингам ENSI.Score, которые в этот момент показаны на сайте, и записывается. Потом она никогда не правится — именно эту цифру показывает страница матча.
p1 = 1 / (1 + 10 ^ ((r2 − r1 − 0) / 400))
r1 и r2 — два рейтинга ENSI.Score в момент фиксации вероятности. Опубликованная модель — elo-v1: сдвиг 0 и масштаб 400.
Матч входит в цифры выше, если в пределах 365 дней периода он отвечает всем условиям:
- Матч сыгран и завершён в пределах периода, и по счёту есть победитель.
- Ничьи и матчи, решённые техническим поражением, исключены: прогнозировать было нечего.
- Прогноз всё ещё описывает матч. Если после фиксации команды поменялись местами или начало перенесли, прогноз помечается и перестаёт учитываться — но остаётся виден как запись того, что было заявлено.
- По уже завершённому матчу ничего не измеряется. Точность модели — это то, что она сказала заранее, и только это.
Полосы калибровки широкие намеренно. Чтобы отличить группу, которая обещает 70 %, от группы, которая выигрывает в 75 % случаев, нужно около 16 500 матчей — примерно год, — и пока их меньше, честнее показывать интервал, а не вердикт.
Запросы, из которых получена цифра
Опубликованная цифра пересчитывается по строкам, которые зафиксировал отчёт, поэтому её можно воспроизвести, даже если счёт исправили, матч перенесли или серию удалили:
php artisan e:elo-accuracy --report=169
select series_id, p1, y::int as y from elo_accuracy_report_rows where report_id = ?
Параметры: 169
Та же арифметика над данными в их текущем виде. На страницы она не попадает: если она расходится с отчётом, значит, входные данные изменились после публикации — это нужно знать, а не сглаживать.
php artisan e:elo-accuracy --live --window-days=365 --window-end=2026-09-25
select sp.series_id, sp.p1,
(case when s.score_1 > s.score_2 then 1 else 0 end) as y
from series_predictions sp
join series s on s.id = sp.series_id
where sp.model = ? and sp.status = 'active'
and s.date_end is not null
and s.date_end >= (?::date - make_interval(days => ?::int - 1))
and s.date_end < (?::date + interval '1 day')
and s.score_1 is not null and s.score_2 is not null and s.score_1 <> s.score_2
and coalesce(s.forfeit_team_1, false) = false
and coalesce(s.forfeit_team_2, false) = false
and (?::int is null or s.game_id = ?)
Параметры: elo-v1, 2026-09-25, 365, 2026-09-25, null, null
Обе выборки — это входные данные. Арифметика над ними — точность, Брайер, log-loss и десять групп с интервалами — один блок SQL, который команда выполняет над любой из двух, поэтому отчёт и пересчёт не могут разойтись из-за того, что считали по-разному.
Хеш зафиксированных входных данных: f7a20c778b8fa41c8005e3a291112891