Data Science & Беттинг

Статистические модели и анализ данных

Использование высшей математики, распределения вероятностей и машинного обучения для объективной оценки силы команд и построения собственных линий.

1. Распределение Пуассона в футболе

Классическая математическая модель для моделирования счета:

Формула Пуассона: P(k) = (λ^k × e^(-λ)) / k!
  • λ (лямбда): Средняя ожидаемая результативность команды (рассчитывается на основе силы атаки хозяев и слабости обороны гостей).
  • k: Рассчитываемое количество голов (0, 1, 2, 3 и т.д.).
  • e: Математическая константа Эйлера (~2.71828).

Практическая ценность: Перемножая независимые вероятности голов обеих команд по Пуассону, мы получаем точную вероятностную матрицу счетов матча (1:0, 2:1, 0:0 и т.д.) и рассчитываем справедливые коэффициенты на 1X2 и тоталы.

2. Ожидаемые голы (xG) и регрессионный анализ

Превосходство метрики xG над фактическими голами:

  • Гол в футболе — относительно редкое и шумное событие с высокой долей случайности (рикошеты, ошибки судей).
  • xG (Expected Goals) оценивает опасность каждого удара по координатам, типу паса и положению защитников.
  • Команды с высоким xG, но низкой текущей результативностью, недооценены рынком и представляют собой идеальный источник валуя.

3. Динамические рейтинговые системы (Elo & Dixon-Coles)

  • Рейтинг Эло: Адаптированная шахматная система, начисляющая и списывающая очки в зависимости от силы обыгранного соперника.
  • Модель Диксона-Коулза: Улучшенная модель Пуассона с поправкой на взаимозависимость низких счетов (0:0, 1:0, 0:1, 1:1) и фактора домашнего поля.

4. Машинное обучение и предиктивные алгоритмы

  • Градиентный бустинг (XGBoost, LightGBM, CatBoost): Стандарт индустрии спортивного анализа на табличных данных.
  • Признаковое пространство: Включает форму за 5/10/20 матчей, xG разницу, PPDA (интенсивность прессинга), график перелетов и стоимость составов.

Практическая работа с моделями

Сбор и очистка спортивных данных

Как автоматизировать выгрузку статистики через открытые спортивные API и агрегаторы данных (FBref, Understat).

Бэктестинг и кросс-валидация

Как правильно проверять гипотезы на дистанции за прошлые 5–10 сезонов без эффекта переобучения (overfitting).

Стек технологий аналитика

Базовый набор библиотек для быстрого прототипирования математических моделей прогнозирования.

💻 Пример базовой логистической модели на Python

Пример разделения выборки и обучения логистической регрессии для прогнозирования исходов:

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from scipy.stats import poisson

# 1. Загрузка подготовленного датасета матчей
data = pd.read_csv('football_matches_xg.csv')

# 2. Выбор предикторов: разница xG, домашний фактор, форма за 5 матчей
X = data[['home_xg_diff', 'away_xg_diff', 'rest_days_diff', 'h2h_advantage']]
y = data['match_result']  # 1: победа хозяев, 0: ничья, 2: победа гостей

# 3. Разделение на обучающую и валидационную выборки с сохранением хронологии
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False)

# 4. Обучение классификатора
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)

# 5. Оценка точности предсказаний
accuracy = model.score(X_test, y_test)
print(f"Точность модели на валидации: {accuracy:.2%}")