Сезон НФЛ стартовал на прошлой неделе. Таким образом, вы можете делать ставки на то, кто выйдет победителем. Или, может быть, вы думаете о том, какую защиту выбрать во время своей фэнтезийной лиги.

В любом случае история НФЛ дает нам довольно богатый набор данных для прогнозирования будущих результатов НФЛ.

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

(Мы сделаем все возможное, но мы не можем гарантировать 100% точность. Так что делайте ставки на свой страх и риск!)

Структурирование проблемы и данных

Учитывая все доступные данные об игроках и играх НФЛ, существует много разных способов структурировать эту проблему. Итак, мы собираемся сосредоточиться на прогнозировании вероятности того, что команда НФЛ выиграет Суперкубок, что дает нам несколько вещей:

  • Результат, который мы пытаемся предсказать, является двоичным — может произойти только один из двух исходов: команда либо выиграет, либо не выиграет Суперкубок.Это наша зависимая переменная.
  • Мы знаем, что в сезоне в НФЛ участвуют 32 команды, и только одна команда выиграет Суперкубок, а это означает, что положительный результат, который мы хотим предсказать, встречается нечасто (это будет иметь значение позже).
  • Нам нужно создать файл данных для каждой команды, в котором будет одна строка за сезон.

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

Что, по нашему мнению, влияет на вероятность победы команды в Суперкубке? Вот некоторые из наших мыслей:

  • Чем больше команда побеждает, тем больше вероятность, что она выиграет Суперкубок — мы должны включить количество побед за сезон.
  • Футбольные стратегии и команды строятся вокруг нападения и защиты. Мы должны включать данные, которые подчеркивают эффективность обеих сторон команды.
  • Команды могут сильно меняться из года в год из-за драфта, но историческая результативность команды имеет определенное значение — мы должны включать данные, которые подчеркивают историческую результативность команды, например, статистику за предыдущий год или скользящую статистику. средние годовые показатели.

После того как вы собрали набор точек данных в файл, мы можем загрузить его в Analyzr для изучения данных.

Изучение наших данных

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

  1. Убедитесь, что ваши данные были загружены в правильном формате — все ли прошло правильно, как и должно было? Вижу ли я ожидаемое количество строк?
  2. Проверьте распределение значений по точкам данных и определите выбросы, которые вам, возможно, придется устранить позже — вы видите все значения для своих категориальных переменных или ваши данные искажены? Имеют ли ваши минимальные/максимальные/средние значения смысл для ваших числовых данных или у вас есть выбросы?
  3. Определите существующие связи в вашем наборе данных — есть ли у вас точки данных, которые уже связаны друг с другом?

Присмотревшись к данным по командам НФЛ по сезонам, мы заметили несколько вещей, на которые необходимо обратить внимание, прежде чем переходить к обучению нашей модели:

  • Хотя вы можете найти достойные данные о сезонах НФЛ, начиная с 1960-х годов, стратегия и правила игры в футбол радикально изменились за последние 60 лет.
  • Например, когда-то все дело было в спешке, но в последние годы игра стала более ориентированной на пас, чем раньше. Специализация игроков кардинально изменилась за последние 40 лет: игроков выбирают только потому, что они очень хороши в чем-то одном.
  • Эти основополагающие изменения в НФЛ означают, что нет смысла возвращаться в 1960 год, поскольку мы вносим в модель известные предубеждения, которые неприменимы к нынешнему миру футбола НФЛ. . Мы ограничили наш набор данных, включив в него данные регулярного сезона 1992 года и последующих лет.
  • Мы видим высокую изменчивость командных результатов от сезона к сезону по нескольким причинам: на протяжении всего периода НФЛ мы видели, как поднимаются «звездные» игроки, которые бьют рекорды и обеспечивают командную производительность, но игроки могут оставаться в НФЛ только до определенного момента. , а также игроки могут часто и резко переключаться между командами из-за того, как работают драфт-пики.
  • Такая изменчивость результатов команд от сезона к сезону снижает ценность необработанных данных и подчеркивает, что нам действительно необходимо понимать производительность команды по сравнению с другими командами в каждом сезоне, а не с течением времени.
  • По этой причине мы стандартизировали наши необработанные данные до z-показателей для каждого сезона, которые говорят нам, насколько далеко команда отстает от среднего значения всех команд за этот сезон. (Например, для нас не имеет значения, что команда А совершила 27 тачдаунов в атаке в регулярном сезоне 2018 года, но важно знать, что общее количество тачдаунов в атаке у команды А было на 1,5 стандартных отклонения ниже среднего среднего значения для всех команд в регулярный сезон 2018 года)

Как только у нас будет чистый файл данных, мы будем уверены, что все готово, и мы готовы начать обучение!

Обучение надежной модели

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

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

  • Алгоритмы. В Analyzr имеется более 20 алгоритмов для разных типов моделей; разные алгоритмы лучше работают с разными типами наборов данных.
  • Входные переменные. Мы не знаем, что влияет на результат, поэтому мы строим эту модель, поэтому нам нужно протестировать различные наборы независимых переменных, чтобы понять это. Если во время исследования вы определили две точки данных, которые уже связаны, вы можете проверить, какая из них работает лучше.
  • Этапы предварительной обработки — Analyzr дает вам возможность включать и выключать дополнительную предварительную обработку, которая по вашему желанию будет включать SMOTE. SMOTE следует использовать, если результат, который вы пытаетесь предсказать, нечасто случается в вашем наборе данных, поскольку он генерирует дополнительные положительные данные для модели, с которой можно работать для построения надежной модели.

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

  • Классификатор XGBoost – он лучше всего подходит для нашего набора данных, поскольку он несбалансирован (за 30 лет данных у нас будет только 30 положительных результатов в более чем 900 точках данных).
  • Мы включили предварительную обработку SMOTE опять же из-за несбалансированного набора данных.

Когда дело доходит до обучения вашей модели, обучите ее на части набора данных — в идеале, не менее 50 % — и отложите другую часть для тестирования или проверки, чтобы увидеть, насколько «хороша» или «плоха» ваша модель.

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

Понимание драйверов модели и производительности

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

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

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

Analyzr продолжает анализировать ваши результаты, рассчитывая типичные показатели склонности по умолчанию, такие как точность, аккуратность и показатель F1.

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

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

В таблицах ниже представлены различные показатели проверки:

Год сыгранного Суперкубка Предполагаемый победитель Суперкубка Победитель Суперкубка в топ-3 самых высоких прогнозируемых показателей склонности Победитель Суперкубка в топ-5 самых высоких прогнозируемых показателей склонности Победитель Суперкубка в пятерке самых высоких прогнозируемых показателей склонности сильный>

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

Модель правильно предсказала победителя Суперкубка в 29% случаев. Таким образом, он может дать вам вероятность предсказать победителя Суперкубка с вероятностью 1/3 в 43% случаев и так далее.

Хотя может показаться, что эта модель не особо помогает, в контексте принятия более разумных ставок она определенно может помочь вам встать на более разумный путь — помогая вам увеличить шансы на то, что вы сделаете правильный выбор!

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

Первоначальные ставки на Суперкубок LVIII

Итак, теперь вам интересно, а как насчет предстоящего Суперкубка 2024 года?

Можем ли мы сделать прогнозы по этому поводу? Мы определенно можем сделать некоторые первоначальные прогнозы, используя некоторые предположения, поскольку сезон 2023 года только начался.

Помните, что наш набор данных состоит из данных регулярного сезона Суперкубка, а также предыдущего регулярного сезона. Итак, для Суперкубка, сыгранного в 2024 году, мы хотим включить статистику регулярного сезона 2023 года и регулярного сезона 2022 года. Поскольку у нас уже есть 2022 год, мы можем использовать его в качестве первоначального прогноза на 2023 год, пока у нас не будет данных за несколько недель, готовых сделать некоторые обновленные прогнозы. (Наши прогнозы по ходу сезона станут точнее.)

Используя этот прокси, можно определить 5 команд с наибольшим количеством очков, которые с наибольшей вероятностью выиграют Суперкубок на данный момент:

  1. Канзас-Сити Чифс
  2. Филадельфия Иглз
  3. Баффало Биллс
  4. Сан-Франциско Форти Найнерс
  5. Цинциннати Бенгалс

Обратите внимание: эти прогнозы не учитывают большие изменения в команде, которые произошли перед регулярным сезоном 2023 года.

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

Оригинально опубликовано на сайте https://analyzr.ai 13 сентября 2023 г.