Как считается рейтинг пилотов?
1 Математическая основа
Мы используем модель Брэдли-Терри с Lasso-регуляризацией — стандарт спортивной аналитики, применяемый в теннисе, футболе и киберспорте. Модель не просто считает места — она определяет вероятность победы одного пилота над другим.
Где θᵢ — рейтинговый коэффициент пилота. Чем выше θ, тем выше вероятность победы в прямом столкновении.
2 Временное затухание — свежие гонки важнее
Каждая гонка получает вес, который уменьшается по экспоненте с течением времени. Старые результаты постепенно теряют влияние — как в реальном спорте.
Активный пилот
- ✅ Гонка 1 месяц назад → вес 93%
- ✅ Гонка 6 месяцев назад → вес 67%
- ✅ Гонка 1.5 года назад → вес ~30%
Участвовал в гонках в последние … дней.
Неактивный пилот
- ⚠️ Гонка 6 месяцев назад → вес 37%
- ⚠️ Гонка 1 года назад → вес 14%
- ⚠️ Гонка 1.5 года назад → вес ~5%
Не участвовал более … дней. Рейтинг постепенно тускнеет.
3 Как это работает на практике
Шаг 3.1. Парные сравнения
Каждая гонка разбивается на парные сравнения с учётом временного веса. Если в гонке 10 пилотов — получаем 45 сравнений (каждый с каждым).
| Место | Пилот | Победы в парах | Вес сравнения |
|---|---|---|---|
| 1 | Пилот 1 | 9 побед | зависит от даты гонки |
| 2 | Пилот 2 | 8 побед | зависит от даты гонки |
| 3 | Пилот 3 | 7 побед | зависит от даты гонки |
Шаг 3.2. Учёт силы соперников
Победа над сильным соперником добавляет больше рейтинга, чем победа над слабым. Финиш 2-м среди сильных пилотов может быть ценнее, чем победа в слабом поле.
4 Байесовское сглаживание — защита от случайных скачков
Пилот с 1–2 стартами может случайно оказаться на вершине таблицы. Мы применяем байесовское сглаживание: рейтинг новичка тянется к медиане класса, пока не накопится достаточно данных.
Где N — число стартов пилота, C = 15 — коэффициент доверия, μ — медиана всех пилотов класса. При N=15 стартах пилот получает 50% доверия, при N≥45 — почти полное.
Без сглаживания
- ⚠️ 1 старт, случайная победа → рейтинг 100
- ⚠️ Новичок выше опытных пилотов
- Рейтинг нестабилен
С байесовским сглаживанием
- ✅ 1 старт → рейтинг близок к среднему по классу
- ✅ После 15+ стартов — рейтинг полностью доверяется
- Рост рейтинга заслуженный
5 Нормировка (шкала 0–100)
После байесовского сглаживания все рейтинги нормируются в понятную шкалу. Лидер класса всегда имеет 100, замыкающий — 0.
6 Тренд формы — ▲ / ▬ / ▼
В таблице рейтинга рядом с каждым пилотом отображается стрелка тренда — она показывает, улучшились или ухудшились результаты в последних гонках. Для каждой гонки считается нормализованная позиция:
Где N — число участников в заезде. 1-е место из 20 пилотов даёт 100 баллов, 10-е из 20 — около 47. Затем сравниваются средние за последние 5 и предыдущие 5 гонок:
предыдущих 5 на 10%+
в пределах ±10%
предыдущих 5 на 10%+
в классе
7 Lasso-регуляризация (α = …)
Параметр Alpha управляет силой регуляризации при обучении модели. Он предотвращает переобучение на малых выборках и стабилизирует рейтинги при малом числе гонок в классе.
8 Иконка ⚠️ — мало стартов
Пилоты с менее чем … стартами отмечаются иконкой ⚠️. Байесовское сглаживание уже корректирует их рейтинг, но визуальное предупреждение помогает правильно интерпретировать результат.
| Пилот | Старты | Рейтинг | Уровень доверия |
|---|---|---|---|
| Новичок | 2 | 54.2 ⚠️ | Тянется к медиане класса |
| Середняк | 7 | 78.1 | Умеренное доверие |
| Ветеран | 20 | 91.4 | Полное доверие |
9 Смена класса и рейтинг
При переходе в новый класс рейтинг пилота начинается с нуля. Каждый класс — отдельная дисциплина: разные возрастные группы, разный конкурентный уровень. В профиле пилота отображаются рейтинги отдельно по каждому классу.
10 Итоговый алгоритм
- Собираем все результаты гонок по каждому классу отдельно
- Для каждой гонки вычисляем временной вес: свежие гонки важнее старых
- Разбиваем на парные сравнения каждый с каждым внутри одной гонки
- Обучаем модель Брэдли-Терри с Lasso-регуляризацией — получаем базовые рейтинги
- Применяем байесовское сглаживание C=15: новички тянутся к медиане класса
- Нормируем в шкалу 0–100 внутри каждого класса
- Рассчитываем тренд формы ▲/▬/▼ по нормализованной позиции за последние 10 гонок
- Помечаем ⚠️ пилотов с малым числом стартов