Блог EPL Fantasy

Как наш ИИ попал в топ-10 в Fantasy Premier League с помощью Data Science

Наш подход Moneyball к EPL Fantasy League

Примечание. Это основная сводка нашего проекта за 2019 год. Еженедельные обновления за 2020 год можно найти в некоторых из моих последних блогов о EPL Fantasy League.

Мой друг (Эндрю Спроул) и я играем в официальную игру Fantasy English Premier League в течение многих лет, и, несмотря на наше твердое убеждение, что мы знаем об английском футболе все, нам не везет из года в год и почему-то никогда не бывает. кажется, выберут команду-победительницу. Итак, мы наконец решили применить Data Science и подход денежного шара к анализу команды / игрока, чтобы выяснить, действительно ли мы выбираем наилучшую возможную комбинацию игроков в каждом сезоне. Наше исследование началось с извлечения самой последней статистики игроков из Fantasy Game API и выполнения статистического анализа всех команд EPL и всех отдельных игроков, использующих Python. Конечной целью нашего проекта было написать алгоритм Python, который использует данные нашего анализа, чтобы делать умные выборы и создавать наиболее оптимальную команду Fantasy League с учетом нашего ограниченного бюджета в 100 миллионов.

Примечание. Наиболее оптимальная команда Fantasy будет измеряться с точки зрения общей суммы очков Fantasy, возвращенных на потраченные доллары Fantasy = рентабельность инвестиций.

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

  1. Основная гипотеза для проверки:
  • Большинство рекреационных игроков EPL Fantasy используют личную предвзятость и фаворитизм при выборе состава для своих команд Fantasy. Другими словами, люди обычно основывают свои решения на том, какие команды они поддерживают и какие игроки EPL являются «самыми горячими» на данный момент, и не рассматривают отдельных игроков как долгосрочные инвестиции и их рентабельность на каждый потраченный доллар Fantasy.
  • Мы считаем, что если мы удалим предвзятость и фаворитизм в процессе принятия решений и сосредоточимся на статистике отдельных игроков и общей производительности команды при выборе нашего фэнтезийного состава, в конце сезона мы сможем добиться большего, чем средний Джо.

2. Ключевые вопросы, на которые стремится ответить наш анализ:

  • Есть ли корреляция между статистикой отдельных игроков в Фэнтези-лиге, общим количеством очков их команды в английской Премьер-лиге и соответствующей позицией в таблице?
  • Можем ли мы определить команды, у которых много неэффективных игроков с завышенными ценами, и те, у которых очень прочный, но недооцененный состав, чтобы мы могли сказать нашему алгоритму, чтобы выбирать из этих команд соответственно? (Примечание. «недооценка» и «переоценка» измеряется с точки зрения затрат Фэнтези-лиги, а не реальной ценности игрока в реальном мире.)
  • Можем ли мы подойти к официальной игре английской Премьер-лиги Fantasy как к эквиваленту фондовой биржи и рассматривать отдельных игроков как финансовые активы и попытаться найти всех игроков с заниженными и завышенными ценами на основе на их рентабельность инвестиций и соответственно инвестировать наш бюджет в долларах Fantasy?

Рентабельность инвестиций отдельного игрока = очки фантазии игрока / стоимость фантазии игрока (другими словами, наша общая сумма очков возвращается на 1 млн долларов фэнтези, потраченных на игрока).

  • Наша теория заключается в том, что это может помочь потратить наш ограниченный бюджет Fantasy League в 100 миллионов на игроков, которые принесут максимальное возможное количество очков за каждый Fantasy Dollar, потраченный на протяжении всего сезона.
  • Если это окажется правдой, можем ли мы затем использовать Python для создания алгоритма, который оптимизирует использование нашего бюджета, выбирая как можно больше игроков с высокой рентабельностью инвестиций в сочетании с некоторыми из дорогих суперзвезд, чтобы максимизировать общее количество возвращаемых очков на общий бюджет потраченный?
  • Как наш алгоритм соотносится с обычным игроком, играющим в игру EPL Fantasy? Какого общего рейтинга достигла наша команда, и смогли ли они со значительным отрывом обыграть среднестатистического игрока?

Примечание. Этот проект был выполнен 14 ноября 2018 года после Gameweek 10, поэтому все данные и таблицы, представленные в статье, актуальны на эту дату.

Ниже приведены основные этапы нашей процедуры:

1. Просмотр статистики отдельных команд

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

Мы ясно видим, что в целом существует линейная корреляция между тем, насколько хорошо команда играет в английской премьер-лиге, и совокупным количеством очков фантазии ее игроков. Оранжевые столбцы выше показывают общую стоимость игроков каждой команды в валюте Fantasy League. Это помогает нам определить команды, которые в среднем приносят приличную прибыль в виде очков Fantasy Points на потраченный доллар (ROI), например: Манчестер Сити, Ливерпуль, Челси, Борнмут, Уотфорд и Вулверхэмптон. Это также раскрывает некоторые команды, которые можно было бы считать плохой инвестицией, такие как - Тоттенхэм, Арсенал, Манчестер Юнайтед, Фулхэм, Хаддерсфилд, Вест Хэм и Саутгемптон.

Затем мы построили график совокупной рентабельности инвестиций каждого игрока в зависимости от количества игроков, которых тренер использует на регулярной основе (игроков, сыгравших не менее 360 минут в сезоне). Это поможет нам определить команды, в которых слишком много дорогих и неэффективных игроков, которые редко играют полные 90 минут в каждой игре из-за частой ротации команд, которую нанимает их тренер, что делает их плохой инвестицией в долгосрочной перспективе, поскольку они будут не генерировать очки фантазии последовательно в каждой игре. Кроме того, этот график ниже поможет нам идентифицировать команды с тренерами, которые не используют частую ротацию игроков, что приводит к тому, что эти команды имеют более постоянное ядро ​​игроков регулярных составов. Это проинформирует наш алгоритм о выборе большего количества игроков из этих команд, поскольку ожидается, что их игроки будут генерировать более высокую совокупную рентабельность инвестиций в долгосрочной перспективе, потому что в среднем они будут участвовать в гораздо большем количестве игровых действий по сравнению с игроками из команд, которые используют частую ротацию игроков. .

На графике выше мы ищем команды с очень высокой синей полосой (совокупная рентабельность инвестиций игроков) и более короткой оранжевой полосой (общее количество игроков, которых тренер использует на регулярно). Лидером в этой категории является Вулверхэмптон с СРЕДНЕЙ рентабельностью инвестиций 8,21 и всего 11 игроков, которую тренер использует на регулярной основе (в среднем доходность 8,21 пункта на каждый потраченный доллар). на каждого игрока "Вулверхэмптона") . Это означает, что большинство игроков "Вулверхэмптона" недооценены по сравнению с их выступлениями, и что тренер использует одних и тех же 11 игроков на регулярной основе и использует замену только к концу игры или когда игрок обычной команды получает травму. Даже такие команды, как Манчестер Сити, Ливерпуль и Челси, входят в эту категорию с 13–14 игроками регулярного состава, а это означает, что выбор игроков из любой из вышеперечисленных команд является хорошей инвестицией в долгосрочной перспективе, потому что регулярный игроки сборной в среднем играют больше минут по сравнению с игроками на скамейке запасных.

Больше всех в этой категории проигрывают Манчестер Юнайтед, Тоттенхэм, Арсенал, Эвертон, Вест Хэм и Фулхэм с рентабельностью инвестиций в диапазоне 4–5 и рядом игроков регулярного состава. достигает 15–16. Это означает, что, выбирая игроков из этих команд, вы делаете «плохие инвестиции», рискуя, что ваши игроки не будут играть каждую игру из-за того, что тренер часто меняет составы. Кроме того, статистика ясно показывает, что цены на игроков этих команд сильно завышены по сравнению с их результатами в Фэнтези-лиге, на что указывает их рентабельность инвестиций ниже среднего.

2. Просмотр статистики отдельных игроков.

Определив, какие команды имеют более высокую совокупную рентабельность инвестиций, мы сосредоточили внимание на отдельных игроках. С точки зрения фондового рынка, мы определили все секторы рынка с высокой доходностью - команды - и теперь мы хотим начать анализ всех отдельных акций в каждом секторе - игроков . План состоит в том, чтобы выделить список игроков с наивысшей рентабельностью инвестиций и написать алгоритм Python, который будет использовать интеллектуальную логику для выбора наиболее оптимальной комбинации игроков, которая обеспечит максимальную отдачу от инвестиций при нашем ограниченном бюджете в 100 миллионов.

Глядя на диаграмму разброса стоимости игрока по сравнению с общим количеством очков фантазии выше, мы хотели бы, чтобы наш ИИ выбирал игроков, которые появляются на сюжете как можно ближе к западу-северу (игроки с низкой стоимостью, которые генерируют много очков фантазии). Обратите внимание, что мы также хотели бы включить некоторых из лучших игроков из восточно-северного угла сюжета, поскольку это будут некоторые из игроков звездной лиги, которые набирают много очков, и хотя они немного дороги, они все же в конечном итоге с приличной рентабельностью инвестиций. На приведенном ниже графике показана рентабельность инвестиций 20 лучших игроков и 20 последних игроков. Итак, мы ожидаем, что наш окончательный алгоритм выберет как можно больше этих высокодоходных игроков. И мы хотим держаться подальше от игроков, цена которых сильно завышена по сравнению с их результатами (высокая стоимость / низкие очки фэнтези), таких как Хари Кейн, Алексис Санчес, Ромелу Лукаку, Кристиан Эриксен, Альваро Мората, Пол Погба, Деле Алли. и многое другое.

Мы решили отобразить статистику выше, в том числе среднюю рентабельность инвестиций всех игроков в лиге (зеленая линия = 5,74), чтобы получить визуальное представление о том, что «перевыполняется» и « неэффективные »игроки. Например, Маркос Алонсо, который является самым прибыльным игроком в лиге, имеет рентабельность инвестиций 12,11, что более чем вдвое превышает средний показатель 5,74, что делает его простым выбором для нашего алгоритма.

На круговых диаграммах ниже мы можем увидеть распределение команд с наиболее завышенными игроками по сравнению с командами с наиболее недооцененными игроками. Мы ожидаем, что наш окончательный алгоритм выберет игроков из множества команд, в которых много высокопоставленных игроков, таких как: Борнмут, Вулвз, Ливерпуль, Челси, Манчестер Сити, Уотфорд и Эвертон. Этот умный подход сильно отличается от подхода, который обычный Джо использует для игры в фэнтези, который заключается в том, чтобы в основном выбирать игроков из его / ее любимой команды, а также нескольких игроков из четырех. или 5 самых популярных команд - Арсенал, Тоттенхэм, Манчестер Юнайтед, Челси, Ливерпуль или Манчестер Сити, а затем заполните остальную часть своей фантастической команды дешевыми игроками-наполнителями, которые никогда не играют в настоящие игры и не приносят очков Fantasy.

3. Написание алгоритма Python для выбора оптимальной команды Fantasy.

Теперь пришло время для самой интересной части - написания настоящего алгоритма Python и сравнения результатов выбора ИИ с тем, что средний человек может выбрать для своей команды Fantasy.

Чтобы понять логику нашего алгоритма, необходимо сначала понять правила и ограничения игры EPL Fantasy, представленные ниже:

  • Каждый фэнтезийный игрок начинает с ограниченным бюджетом в 100 миллионов и должен купить 15 футболистов (11 для основного отряда + 4 запасных), чтобы соревноваться.
  • У вас должно быть как минимум 2 голкипера, 5 защитников, 5 полузащитников и 3 нападающих, чтобы составить команду и иметь право играть.
  • В одной футбольной команде не может быть более 3 игроков.

Итак, мы начали наш алгоритм python с оператора if-else для этих условий, а затем добавили наши собственные условия и логику поверх этого, чтобы каждый раз, когда алгоритм просматривает наш список игроков, он может использовать интеллектуальную логику для создания действительной Выбирайте, руководствуясь нашими условиями ниже:

  • Убедитесь, что игрок травмирован, дисквалифицирован или недоступен для игры, и если да, не выбирайте этого игрока в нашу команду Fantasy, даже если у него высокий ROI.
  • Сначала выберите трех лучших звездных игроков, набравших наибольшее количество очков в лиге. (Мы проверим результат этого условия с разным количеством звездных игроков и выберем версию, которая принесет наибольшую отдачу от инвестиций, при этом оставаясь при этом достаточным для остатка бюджета, чтобы заполнить нашу команду большим количеством игроков из топ-50. ROI игроков.)
  • Каждый раз, когда мы выбираем игрока и добавляем его в нашу команду, мы вычитаем его стоимость из нашего 100-миллионного бюджета и добавляем его позицию и название команды в список, чтобы убедиться, что мы перестали покупать игроков для позиций и команд, которые попали в рейтинг. их предел ограничения.
  • После того, как оптимальное количество дорогих игроков-суперзвезд выбрано, алгоритм начинает просматривать список игроков с наивысшей рентабельностью инвестиций и пытается найти нам как можно больше топ-имен, пока мы не приблизимся к тому, чтобы исчерпать наш бюджет и заполнить все командных позиций.
  • Алгоритм распечатывает список выбранных им игроков в конце и дает нам оставшийся бюджет и общее количество очков фантазии команды.

Вот часть нашего сжатого кода Python для алгоритма подбора команды:

Ниже вы можете увидеть снимок экрана с последней командой, выбранной нашим алгоритмом:

Примечание. Указанная ниже команда является точной только до 14 ноября 2018 г. Наш алгоритм разработан для обновления статистики игроков после каждой игровой недели и принятия новых решений на основе колебаний в статистике рентабельности инвестиций команды / игрока.

Примечание. Мы написали аналогичный алгоритм для команды AVG Joe, который больше фокусируется на расходовании бюджета на звездных игроков из крупных команд, которые часто завышены и могут не дать наивысшего кумулятивного рентабельности инвестиций при нашем ограниченном бюджете. 100м.

Примечание. Мы также попросили одноклассника выбрать собственную случайную команду, чтобы мы могли сравнить его выбор и убедиться, что наша функция случайного выбора команды для алгоритма AVG Joe является точной.

4. Сравнение наших результатов

Теперь, когда оба алгоритма созданы и выполнены, давайте сравним результаты нашей «денежной команды» против «AVG Joe’s Team и« случайной одноклассной команды », чтобы увидеть, какой из них работает лучше всего и с какой разницей. Окончательные результаты показали, что наша команда набрала 944 балла против всего лишь 812 баллов. для команды AVG Joe (аналогично команде нашего одноклассника), что является значительной разницей в 132 пункта! Гистограмма ниже демонстрирует наши результаты:

Интересные вопросы для ответа: Наш алгоритм дал команду с наивысшей рентабельностью инвестиций? Со значительным отрывом от остальных? Успешно ли наш алгоритм выбрал игроков из некоторых команд, находящихся в середине таблицы, которые мы изначально определили как недооцененные? Выбрали ли AVG Joe Algorithm и наш одноклассник больше дорогих игроков с завышенной ценой из лучших команд?

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

Это гораздо более сбалансированный и беспристрастный метод выбора, чем тот, который использовал AVG Joe при выборе своих игроков. Обратите внимание, что на круговой диаграмме ниже показан список команд для 11 игроков, выбранных командой AVG Joe в качестве основного состава. Поскольку AVG Джо потратил большую часть своего бюджета на выбор 11 очень дорогих игроков, ему / ей пришлось потратить оставшийся бюджет на самых дешевых доступных игроков, чтобы заполнить все замещающие позиции, но ни один из этих игроков не может быть использован для создания фэнтезийные очки из-за того, что они никогда не играли в настоящие игры EPL и использовались только в качестве заполнителей команды. Это несколько игроков из Брайтона и Кардиффа.

Заключение:

Устранение предвзятости команды / игрока и фаворитизма и сосредоточение внимания на фактической статистике игроков позволило нашему алгоритму получить максимальную отдачу от наших вложений и превзойти среднего игрока EPL Fantasy в сумме 132 балла или целых 16,25% ! В конце концов выяснилось, что мне и моему другу не повезло, и была причина, по которой наши команды Фэнтези-лиги год за годом выступали очень плохо. Такое глубокое погружение в данные об игроках позволило нам понять, что мы допускаем командный фаворитизм и склонность покупать много игроков по завышенным ценам, чтобы навредить нашей общей игре в Fantasy League.

5. Дальнейшие действия

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