Соавторы: Э. Тжиое, Ф. Сякир, Р. Х. К. Шум, И. Буо

Код для этого проекта: Github

Курс этого проекта: Нейронные сети (LTAT.02.001) — Тартуский университет

Введение

Будучи одной из самых популярных многопользовательских спортивных игр, футбол является историческим видом спорта, который приносит радость и волнение человечеству. В наш век смартфонов и Интернета мы могли наслаждаться игрой в прямом эфире повсюду на наших маленьких экранах или заходить в паб, чтобы покричать со болельщиками клуба. Будучи самым популярным видом прямой трансляции для различных телепередач и ресторанов, футбол начал приносить неподдерживаемый экономический рост за счет спонсорской рекламы и индустрии ставок. Аналитика футбольных данных стала более ценной, и появилось больше различных открытых наборов данных, которые можно легко архивировать. Любители футбола согласятся, что предсказывать футбольные результаты заманчиво и сложно. В этом проекте мы пытаемся построить модель нейронной сети для футбольных прогнозов с данными из базы данных European Soccer от Kaggle [1] и данными с football-data.co.uk [2].

Мы сосредоточились на обучении нашей модели на данных двух самых популярных лиг — английской Премьер-лиги (EPL) и испанской Ла Лиги (SLL). В EPL участвуют 20 клубов (команд), которые проводят каждый сезон с августа по май. Всего клуб в АПЛ проводит 38 игр за сезон, половина из которых проводится на их домашних стадионах, а другая - на стадионах противоборствующих команд. По данным blearcherreport.com, EPL — самая популярная лига в мире. В SSL, как и в EPL, участвуют 20 клубов, и каждый из них играет одинаковое количество игр за сезон. Игры проводятся с августа по май. По данным bleacherreport.com, SSL считается второй по популярности лигой в мире.

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

Приложения машинного обучения для прогнозирования футбольных результатов

Большое количество исследований было посвящено применению анализа данных и машинного обучения для прогнозирования результатов спортивных событий и, что наиболее важно, футбола. Банкер и Табта (2019) предложили CRISP-DM для прогнозирования спортивных результатов (рис. 1), который мы приняли для нашего проекта.

Будут объяснены эксперименты с двумя лигами и разными гиперпараметрами.

Подготовка данных

В European Soccer Database мы нашли 8 сезонов (2007/2008–2015/2016) матчей двух лиг — EPL и SSL. Мы удалили столбцы данных, которые мы сочли нерелевантными для этой задачи, после нашего предварительного анализа динамики игры. Также мы преобразовали некоторые столбцы данных xml в значимые данные и применили обработку нулей. Таблицы (данные) в европейской базе данных показаны на рисунке 2.

Мы сгенерировали игровую статистику (кумулятивное количество голов, забитых и пропущенных командами, общее количество очков) на основе данных, собранных из [2]. Эти функции дополняют функции из [1].

Мы также исключили данные об информации игроков (рисунок 3) из нашего анализа, поскольку посчитали их неактуальными.

Вместо этого мы решили имитировать типичные ставки азартных игроков. Статистика игроков и общая статистика команд изменчивы и иллюзорны. Значения скорости, навыков и стиля игры кажутся ненадежными.

Почему статистика игроков не так надежна?

В знаменитой игре-симуляторе футбольного менеджмента «Football Manager» игрок может выступать в роли менеджера своей любимой команды, готовить матчи и вести свою команду, чтобы выиграть различные трофеи. Это игра, основанная на статистике игроков, стратегиях формирования команд, бюджетах футбольных клубов. В этой игре они ввели параметр каждого игрока в команде, который называется «Мораль». Боевой дух — это показатель текущего настроения и мышления игрока [4]. Это как общий параметр настройки статистики игрока вашей команды. Чем выше боевой дух определенного игрока, тем выше будет общая статистика этого игрока, и наоборот. В этой игре-симуляторе есть много действий, которые мы могли бы выполнить, чтобы поднять боевой дух нашего игрока, например, поговорить перед матчем с различными стратегиями — ободряющими или расслабляющими. В этой игре у каждого игрока есть свой характер, и существует 36 основных типов личности, которые могут быть положительными, нейтральными или отрицательными. Все эти личности влияют на мораль игроков в разных ситуациях. Таким образом, их производительность также будет затронута. Повышение боевого духа отряда влияет на результаты матчей в этой игре-симуляторе. Тем не менее, реальный мир более или менее такой же.

Мы не говорим, что статистика игроков бесполезна. Футбольная команда с более высокой общей статистикой должна иметь преимущества, играя против более слабого соперника. Это было бы более очевидно, если бы мы сопоставили 2 команды из разных дивизионов лиг. Впрочем, разрыв между статистикой игроков высших дивизионов лиг невелик. Есть много неоднозначных факторов, влияющих на их собственную статистику, таких как личность, социальные факторы, факторы образа жизни.

Как может моя команда проиграть команде, которая намного слабее моей? — игроки Football Manager

Игрок по-крупному

Это своего рода факт, что мораль и характер игроков высокого уровня влияют на их выступления в некоторых ключевых матчах. Для случаев с положительным эффектом мы называем их «игроком в крупную игру» [5]. Эти игроки забивают больше голов в минуту в матчах финального раунда некоторых трофеев или важных матчах лиги дерби, таких как Дидье Дрогба и Криштиану Роналду. Они будут играть лучше и помогут своей команде выиграть эти важные матчи. И все же некоторые великие игроки показали худшие результаты в таком напряженном сценарии, как Златан Ибрагимович и Тьерри Анри. Общая статистика их игроков резко упала бы в этих больших играх. Если мы просто обратимся к статистике игроков и поставим на победу команды, которая выглядит сильнее, то у вас будут проблемы.

Наш выбор: позиции команд в лиге, очки в лиге, серии побед и поражений, история матчей, забитые голы, пропущенные голы

В этом проекте мы решили использовать следующие функции. Всего 30 функций. Все эти выбранные функции рассчитываются с использованием набора данных из EPL_sort.csv для матчей EPL и LaLiga_sort.csvдля матчей Ла Лиги. Оба набора данных содержат все результаты матчей и статистику с сезона 2008/2009 по сезон 2015/2016 для обеих лиг (всего 8 сезонов). Все эти выбранные функции рассчитаны с использованием всех столбцов, доступных в наборах данных. Например, чтобы рассчитать серию побед или поражений, мы используем все результаты предыдущих матчей в других столбцах. Для последней выбранной функции, Разница позиций в лиге, нам нужно получить дополнительный набор данных, содержащий положение в лиге с сезона 2007/2008 по 2014/2015, и использовать его для сравнения между двумя командами. положение в лиге в предыдущем сезоне для каждого матча. На рис. 4 показано, как выглядит итоговая матрица данных.

Корреляция

Мы создали корреляционную матрицу функций, которые решили использовать для моделирования для обеих лиг (рис. 5 и 6). Это было сделано, чтобы узнать, как переменные объясняют друг друга.

Моделирование

Разделение набора данных

Для разделения набора данных мы делим его вручную по сезонам лиги с описанием ниже:

АПЛ

  • epl_data_train_onehot.csv (все матчи с сезона 2009/2010 по 2015/2016)
  • epl_data_test_onehot.csv (все матчи сезона 2008/2009)

Ла Лига

  • laliga_data_train_onehot.csv (все матчи с сезона 2009/2010 по 2015/2016)
  • laliga_data_test_onehot.csv (все матчи сезона 2008/2009)

«Глупые» модели.

Всегда победа хозяев / победа гостей / ничья

Разумно, что если мы делаем ставку всегда на победу хозяев, то ее точность будет выше, чем у ничьи и победы гостей из-за преимущества хозяев. Тем не менее, точность составляет всего 45% для АПЛ и 48% для Ла Лиги. Пожалуйста, только не пытайтесь.

Только шансы

2 модели ставок были сделаны только с учетом нечетного. Для матчей мы использовали данные о коэффициентах B365 из Европейской футбольной базы данных. Две модели делают ставку на шансы в пользу и делают ставки против шансов на пользу.

В нашей модели ставок в пользу программа будет ставить на команду с наименьшим значением коэффициента, что означает, что потенциальный денежный приз будет наименьшим, и букмекерские компании считают, что это будет наиболее возможный результат перед матчами. Точность составляет 53% для АПЛ и 56% для Ла Лиги. Другая стратегия – это шансы против преимущества. Это означает, что программа будет ставить только на результат с наибольшим значением коэффициента. Это самый рискованный выбор, но с самым высоким потенциальным выигрышем. Точность этой модели составляет 22% для АПЛ и 20% для Ла Лиги.

Хотя результат не удивителен. Проведена симуляция ставок на деньги. Ставим по 10 евро на матч. Мы сильно проигрываем, и, как ни странно, ставки против шансов на пользу — единственная модель выигрыша денег с точностью 22%. В нем говорится, что в футбольных ставках лучший прогноз на общие матчи не означает больше шансов на выигрыш денег, но повышение точности прогноза на определенные матчи с высоким коэффициентом будет иметь значение.

Базовые модели

Мы создали несколько базовых моделей с использованием других алгоритмов машинного обучения — логистической регрессии, XGB Classfier, дерева решений и случайного леса от sklearn. Среди всех них Random Forest работает лучше всего. Здесь мы представим его вкратце.

Случайный лес

Мы использовали RandomizedSearchCV для поиска лучших параметров для моделей RF. Модели RF, обученные для обеих лиг, имеют максимальную глубину 4, а их точность составляет около 54%. Он имеет лучшую точность по сравнению со всеми другими базовыми моделями, что имеет смысл. Он превосходит дерево решений, тем более что это ансамблевый метод деревьев решений.

Предлагаемая модель нейронной сети

Мы исследовали различные параметры, такие как скорость обучения, скрытые_слои, отсев и размер партии. Для скорости обучения мы выбираем скорость 10^-5 и комбинацию 10^-6. Для отсева мы выбираем комбинацию 0, 0,3, 0,5 и 0,7. Для дизайна нейронной сети мы пробуем два разных слоя: слой 41–75–3 и слой 41–10–10–10–3. Наконец, для размера партии мы выбираем комбинацию 16 и 32.

В начальном результате мы получили точность проверки около 52% для EPL и 53% для Ла Лиги. Это не то, что мы хотели. Таким образом, на следующем этапе мы выполняем настройку гиперпараметров.

Настройка гиперпараметров

В настройке лучшие параметры находятся ниже.

# EPL[1e-05, ‘41–75–3’, 0.5, 16, 2.8191776275634766, 0.6168224215507507]
# La Liga[1e-05, ‘41–10–10–10–3’, 0, 32, 0.9817492961883545, 0.5420560836791992]

Для EPL лучшими параметрами скорости обучения, скрытого слоя, отсева и размера партии являются 10^-5, «41–75–3», 0,5 и 16. Эти параметры обеспечивают точность проверки 61%. С другой стороны, для результата Ла Лиги наилучшие параметры скорости обучения, скрытого слоя, отсева и размера партии равны 10^-5, «41–10–10–10–3», 0 и 32 с результатом проверки точности 54%.

После настройки гиперпараметров наша модель значительно лучше работает для EPL и немного для Ла Лиги.

Оценка и анализ ошибок

В таблице 1 представлены характеристики всех созданных нами моделей. Мы создали два набора «глупых» моделей, один из которых ориентирован на командные выступления, с тремя подмоделями, каждая из которых всегда предсказывает один из возможных результатов. Вторая глупая модель ориентировалась на коэффициенты букмекерских контор. Глупая модель производительности команд показала результат менее 50% из-за предвзятости в прогнозах. Тем не менее, предсказание шансов было относительно лучше. Несмотря на это, мы признаем, что исход игр не определяется мнением букмекерских компаний. На самом деле все команды выходят на игру с намерением победить, но их игра на поле определяет результат.

Наши базовые модели с использованием случайного леса показали значительное улучшение точности и стабильности. С нашими базовыми моделями, использующими Random Forest, мы создали диаграммы, которые показывают важность (рис. 7) функций, используемых в моделировании. Другие базовые модели, использующие ускоренные классификаторы и логистическую регрессию, работают так же, как и случайный лес. Дерево решений, с другой стороны, работает относительно хуже.

Из рисунка 7 мы видим, что одинаковые наборы признаков были важны для обеих лиг, однако уровни важности были разными. Например, разница текущих очков в лиге (DiffPts) важна для определения исхода игры в обеих лигах, но она имеет большее значение в EPL, чем в Ла лиге.

Наша модель глубокой нейронной сети работала лучше, чем наши «глупые» и базовые модели. Хотя точность не очень высока, мы считаем, что это надежная модель, которую можно улучшить, если будут доступны дополнительные важные функции.

Делать ставки

Чтобы предсказать, какой денежный приз мы можем выиграть от букмекерской конторы B365 (в этом анализе мы используем только это агентство), мы создали модель нейронной сети с дополнительными функциями на основе коэффициентов ставок от B365, включая B365H (домашняя), B365D (ничья). и B365A (В гостях). Мы опробовали 8 типов расчета ставок, как показано ниже:

  • Ставки только на победу гостей
  • Ставки только на ничью
  • Ставки только на домашние победы
  • Ставки дома или в гостях
  • Ставки на все возможности (в гостях, вничью и дома)
  • Ставка только на прогнозируемого победителя
  • Ставки с пороговой прибылью
  • Ставка на максимальную прибыль

Установлено, что ставки с «пороговой прибылью», «прогнозируемый победитель», «дома или в гостях», «только победы хозяев» и «все возможности» приносят более высокие денежные призы, а ставки «только на ничью» и «на максимальное число». return» возвращает более низкие призы. Резюме результатов ниже.

Выводы и выводы

По результатам нашей задачи можно сделать вывод, что исход футбольных игр можно смоделировать на основе предыдущих результатов противоборствующих команд и их рейтинга в соответствующих лигах. Кроме того, при отсутствии информации о выступлениях команд прогнозы можно делать с коэффициентами, предоставляемыми букмекерскими конторами, следуя нашей «глупой» модели. Однако это зависит от того, как коэффициенты рассчитываются букмекерскими конторами, поэтому игроки должны быть проинформированы.

В инженерных функциях мы заметили, что сложные функции, которые мы пытались создать, не улучшали нашу точность, а скорее работали хуже, чем «глупые» модели. Мы приходим к выводу, что простые функции хорошо работают в подобных случаях. Совокупность голов, забитых и пропущенных командами, и их соответствующие очки в сезоне лиги оказались важной особенностью наших моделей.

Модели нейронных сетей для обеих лиг могут быть адаптированы и модифицированы для соответствия другим лигам.

Ссылка

[1] https://www.kaggle.com/hugomathien/soccer

[2] https://www.football-data.co.uk/

[3] https://doi.org/10.1016/j.aci.2017.09.005

[4] https://fminside.net/guides/morale/

[5] https://www.football365.com/news/big-game-players-cristiano-ronaldo-peter-schmeichel