Насколько точен рейтинг ENSI.Score
64.4%
прогнозов, зафиксированных сайтом до матча, сбылись
3,018 оценено из 21,896 матчей периода
Измерено на 3018 матчах, сыгранных с 1 ноября 2025 г. по 31 октября 2026 г.. Пересчитано 31 октября 2026 г. по отчёту №601.
Цифры в сравнении с монеткой
| Метрика | ENSI.Score | Монетка |
|---|---|---|
| Точность | 64.45% | 50.00% |
| Оценка Брайера чем меньше, тем лучше | 0.2182 | 0.2500 |
| Log-loss чем меньше, тем лучше | 0.6247 | 0.6931 |
Точность считает матчи, в которых победил фаворит. Брайер и log-loss оценивают саму вероятность, и чем они ниже, тем лучше: прогнозист, который сказал 90 % и ошибся, наказывается сильнее того, кто сказал 51 % и тоже ошибся.
| Игра | Матчи | Точность | Оценка Брайера | Log-loss |
|---|---|---|---|---|
| CS2 | 2,145 | 64.20% | 0.2186 | 0.6258 |
| Dota 2 | 316 | 64.87% | 0.2161 | 0.6208 |
| LoL | 322 | 61.49% | 0.2337 | 0.6582 |
Дисциплина появится здесь, когда у неё наберётся 300 собственных учтённых прогнозов.
Какую часть года это покрывает
21,896 матчей периода можно было оценить
- 3,018 оценено: вероятность зафиксирована до начала
- 38 устарело: вероятность перестала описывать матч
- 18,840 вероятности не было вовсе
Также отдельно от этой суммы: 25 матчей, для которых вероятность нельзя было зафиксировать, — сайт узнал о них только после их начала.
Ничьи и матчи, решённые техническим поражением, учитываются отдельно от этой суммы: таких 1183, и ни по одному из них вероятность нельзя проверить результатом.
70 % — это семь раз из десяти?
Все прогнозы за год, отсортированные по выданной вероятности и разбитые на десять равных групп. Группа на диагонали оказывалась права ровно так часто, как обещала; полосы — диапазон, с которым группа ещё согласуется на уровне 95 %, и они широкие, потому что год матчей — это немного.
- Диагональ: прав ровно так часто, как предсказано
- Группа: предсказанное против того, как часто побеждали
- Диапазон, с которым группа согласуется на 95 %
| Группа | Матчи | Прогноз | Фактически выиграно | Разрыв, п. п. | 95-процентный интервал |
|---|---|---|---|---|---|
| 1 | 302 | 24.7% | 29.1% | +4.5 | 24.3% – 34.5% |
| 2 | 302 | 36.5% | 43.4% | +6.9 | 37.9% – 49.0% |
| 3 | 302 | 43.2% | 42.7% | -0.5 | 37.3% – 48.4% |
| 4 | 302 | 48.1% | 53.0% | +4.9 | 47.3% – 58.5% |
| 5 | 302 | 52.6% | 57.9% | +5.4 | 52.3% – 63.4% |
| 6 | 302 | 57.3% | 58.3% | +1.0 | 52.6% – 63.7% |
| 7 | 302 | 61.7% | 64.2% | +2.5 | 58.7% – 69.4% |
| 8 | 302 | 66.8% | 71.5% | +4.7 | 66.2% – 76.3% |
| 9 | 301 | 73.9% | 73.8% | -0.1 | 68.5% – 78.4% |
| 10 | 301 | 84.5% | 87.4% | +2.9 | 83.1% – 90.7% |
Как получается цифра
В течение двух часов до объявленного начала матча вероятность победы первой команды рассчитывается по двум рейтингам 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=601
select series_id, p1, y::int as y from elo_accuracy_report_rows where report_id = ?
Параметры: 601
Та же арифметика над данными в их текущем виде. На страницы она не попадает: если она расходится с отчётом, значит, входные данные изменились после публикации — это нужно знать, а не сглаживать.
php artisan e:elo-accuracy --live --window-days=365 --window-end=2026-10-31
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-10-31, 365, 2026-10-31, null, null
Обе выборки — это входные данные. Арифметика над ними — точность, Брайер, log-loss и десять групп с интервалами — один блок SQL, который команда выполняет над любой из двух, поэтому отчёт и пересчёт не могут разойтись из-за того, что считали по-разному.
Хеш зафиксированных входных данных: 18db6571ae3636d33d9792181f63c2b5