Аналитик создал нейросеть для прогнозов на базе карточек FIFA и получил ROI 11%

22.04.2022 • 12:05
Аналитик создал нейросеть для прогнозов на базе карточек FIFA и получил ROI 11%

Специалист по анализу данных Channel 4 Брэдли Грэнтэм разработал предиктивную модель для АПЛ на основе карточек FIFA. Коэффициенты взяты по линии закрытия Pinnacle.  

В прошлом году мне захотелось немного поиграться с xG-моделью и заодно попрактиковаться в программировании на Python. Меня вдохновили Майкл Кейли (Michael Caley) и Тед Кнутсон (Ted Knutson), за которыми я активно слежу в твиттере.

На мой взгляд, xG — просто фантастика. Но, как и другие футбольные метрики, теория ожидаемых голов имеет свои недостатки.

Во-первых, она не учитывает составы команд. Если у «Челси» не играл Азар, то xG команды был чуть ниже среднего показателя.

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

И, наконец, пока еще нет xG-модели, которая бы качественно обобщала данные по 5 топ-лигам Европы (это как раз то, над чем я сейчас работаю).

Я опоздал со своей xG-моделью — подобное существовало уже 4-5 лет, и моя модель не демонстрировала чего-то принципиально нового. Я хотел создать то, что: а) помогало прогнозировать исходы матчей; б) было новым; в) использовало данные об игроках.

Я почти не видел имплементации нейросетей в футбол. Так что я создал что-то подобное в Tensorflow (программная библиотека Google для развития нейронных сетей), чтобы предугадывать результаты игр на основании стартовых составов.

Данные

Наиболее очевидный рейтинг футболистов — база FIFA от EA Sport. Она обновляется ежегодно, она едина для всех лиг и достаточно точна. Я использовал только общий рейтинг, хотя, возможно другие параметры (защита, атака и т.д.) дали бы более точные результаты.

Я собрал рейтинги игроков АПЛ за последние 5 лет с сайта fifaindex.com. Мне нужна была информация, в каких матчах они принимали участие, я использовал ресурс betstudy.com, где собрана информация о фамилии, номере и национальности каждого, кто играл в АПЛ.

Фамилии из баз FIFA и Betstudy не всегда совпадали, поэтому я использовал комбинацию из фамилии, номера, команды и национальности. Я получил 22 рейтинга на каждый матч: 11 домашних игроков и 11 гостевых с показателями от 50 до 100 за все игры последних 5 сезонов Премьер-Лиги.

прогнозирование по карточкам фифа 1

На примере выше стартовый состав Челси: Куртуа, Мозес, Рюдигер, Алонсо, Кристенсен, Аспиликуэта, Фабрегас, Канте, Азар, Мората, Виллиан.

Что обозначают нули

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

Поэтому для каждого стартового состава я создал вектор из 18 позиций (пример выше). В этом векторе первая клетка определяет вратаря, следующие 6 — рейтинги защитников. Если защитников, к примеру, всего 4, то две клетки остаются пустыми (значение 0). Следующие 7 позиций для полузащитников и, наконец, последние, 4 — для атаки. То по схеме выше ясно, что «Челси» играл 5-2-3.

Подобная структура помогала учитывать игровые схемы. Если в составе 6 защитников, то вероятнее всего команда сыграет от обороны. В нейронную сеть попадает 36-мерный вектор (18 домашних ячеек и 18 гостевых), что позволяет учитывать домашнее преимущество.

На последнем этапе я загрузил в модель результаты игр и коэффициенты, которые взял с football-data.co.uk, где их бережно собирает Джозеф Бухдаль (Joseph Buchdahl).

Модель с обучением

На картинке — архитектура нейронной сети

прогнозирование по карточкам фифа 2

После сбора и форматирования данных необходимо определить внутреннюю структуру сети. Я тренировал нейросеть на сезонах с 2013/14 по 2016/17, чтобы потом протестировать модель на сезоне 2017/2018. Из 1540 игр я оставил 50 для финальной проверки.

Модель я обучал методами ранней остановки (один из методов регулирования, предотвращающий переобучение нейронной сети) и исключения.

Тестирование

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

По итогам тестов за сезон-2017/2018 ROI составил 11% — замечательный показатель. Я переобучил модель несколько раз, провел еще новые тесты, но результат оставался стабильным. Вот несколько конкретных цифр:

  • выиграно 50% ставок;
  • средний коэффициент на Pinnacle — 2,37;
  • средний прогнозный (вычисленный моделью) коэффициент — 2,01;
  • средний валуй — 7,23%, с максимальным значением 21,3%.

ROI, безусловно, зависит от случая, но цифры в любом случае выглядят многообещающими. Для наглядности я отобразил рост банкролла и суммы ставок на графике.прогнозирование по карточкам фифа 3

Сезон-2018/2019

Вдохновившись отличными результатами, я решил проверить модель в боевых условиях. Перед сезоном-2018/19 я переобучил модель, загрузив в нее сезон-2017/18. Оставались важные нюансы — угадать стартовые составы и схемы игры для каждой команды. Это не так и сложно в начале чемпионата, но к весне меняется очень многое.

Для сезона-2018/19 я планировал использовать карточки из FIFA-2017/2018. Это не критично, но было много игроков, чьи показатели значительно изменились за год (тот же Салах). Оставалось ждать новой FIFA с актуальными рейтингами.

Еще один минус — трансферное окно еще было открыто после старта чемпионата, и обновления составов продолжались.

Я просимулировал сезон миллион раз (на ноутбуке это заняло около 8 минут) и подсчитал среднее количество очков, побед, поражений и ничьих. Затем я высчитал процент, как часто команды финишировали первыми, в первой четверке, в зоне вылета.

прогнозирование по карточкам фифа 4

Получив первые результаты, я немного проиграл с моделью, например, допустив уход Азара, я ставил вместо него Виллиана (рейтинг 91 против 84). Это приводило к тому, что «Челси» недобирал 4 очка по итогам сезона.

Или убирал из «МЮ» Де Хеа и ставил в ворота Ромеро — манкунианцы к концу сезона набирали на 3 очка меньше.

В целом, я очень доволен работой модели. Это неидеальный способ моделирования футбольного матча. Футбол гораздо сложнее: тренер, мотивация, погода, стадия сезона, график, удача. Тем не менее, исследование получилось занимательным. Я хочу настроить модель на использование Smarkets API, чтобы ставки делались автоматически.

P.S. Статья была написана летом 2018 года, и мы можем сравнить смоделированные результаты с настоящими. Чемпионство «МС» не вызывало сомнений, а вот «Ливерпуль» был недооценен — только 5-е место. С зоной вылета все неплохо — модель верно предсказала вылет «Кардиффа» и «Хаддерсфилда», а вот слабое выступление «Фулхэма» высчитать не удалось.

Переведено с сайта towardsdatascience.com

Нашли ошибку? Сообщите нам

Ваша почта для ответа (необязательно):

Комментарии (0)