Эта статья больше посвящена базовой реализации нейронной сети, чем результатам использования ИИ для выбора победителей. Как вы вскоре увидите, выборы были плохими, и еще до начала турнира было ясно, что выбор также был в лучшем случае сомнительным. Турнир начался 17.03.22 и закончился 4.04.2022.

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

Выбор

В этом году у модели был Оберн, обыгравший Кентукки, чтобы выиграть все это. Кентукки встретился с Дьюком, а Оберн встретился с Хьюстоном в финале четырех. Это звучит разумно, но, чтобы добраться до этого момента, было предсказано много разочарований (включая победу штата Норфолк над Бэйлором), и было предсказано, что семена 13/14 выиграют намного больше, чем они исторически. Я расскажу о некоторых причинах/проблемах после того, как расскажу о реализации. Смотрите фотографии ниже, чтобы увидеть все варианты и их результаты. На картинках правильный выбор отмечен зеленым цветом, а неправильный — красным или серым. В скобках указаны фактические команды, которые в итоге сыграли, а названия небольших команд вверху или внизу — это первоначальные выборы для этой игры.

Инструменты

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

Все свои данные я получил из баскетбольного справочника. Я вытащил список всех студенческих команд, с которыми нужно играть (их 485, если быть точным), вывел итоги каждой игры на конец года с 2010 по настоящее время, а затем вывел счет побед и поражений для каждой игры с 2010 года. представлять.

Я сделал это, используя python (который включает в себя sqlite), прекрасный суп для очистки веб-страниц и tensorflow для машинного обучения.

Я использовал vscode для написания своего кода и браузер этой базы данных для просмотра/редактирования моих данных.

Идея

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

Это очень-очень высокоуровневое представление о создании нейронной сети. Я предлагаю прочитать все руководство машинное обучение — это весело.

Особенности модели

Домашняя команда (за игру):

  • 2 указателя
  • 2 попытки указателя
  • 3 указателя
  • 3 попытки
  • штрафные броски
  • попытки штрафных бросков
  • подборы в атаке
  • подборы в защите
  • помогает
  • блоки
  • ворует
  • обороты
  • персональные фолы

Статистика выездной команды (за игру):

  • 2 указателя
  • 2 попытки указателя
  • 3 указателя
  • 3 попытки
  • штрафные броски
  • попытки штрафных бросков
  • подборы в атаке
  • подборы в защите
  • помогает
  • блоки
  • ворует
  • обороты
  • персональные фолы

Этикетки моделей

Если команда хозяев выиграла, 1. Если они проиграли, 0.

Процесс

Я пытаюсь оседлать линию предоставления информации, сохраняя при этом общий и технический свет. В этом свете процесс был довольно коротким. После получения данных и организации их для использования в TensorFlow я использовал модель последовательной нейронной сети, в основном следуя этому руководству.

Обсуждение

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

  1. Отсутствовал показатель силы конференции. Это была самая большая проблема модели: команды из небольших конференций с великолепной статистикой не играли с командами того же калибра. Поскольку модель была основана на статистике конца сезона, это искажало статистические предпочтения. Способом свести на нет это может быть добавление в модель новой переменной, называемой процентом выигрыша, и это будет значение от 0 до 1, указывающее исторический процент выигрыша. (Это может стать фанковым из-за матчей внутри конференции.)
  2. Реальная модель выдает значение от 0 до 1, например 0,455 или 0,545. В этих примерах первый результат будет 0 (проигрыш), а второй результат будет 1 (выигрыш). Это было суждением с моей стороны, и я до сих пор не уверен, как лучше всего справиться с неопределенностью при принятии окончательного решения.
  3. Неопределенность в общем. Продолжение пункта 2, не зря его называют Мартовским безумием, использование метода Монте-Карло для случайного выбора победителей может смягчить некоторые проблемы.
  4. Выбирая точки данных, которые имеют смысл, я случайным образом выбрал свои функции и метки. На самом деле не имеет смысла сравнивать две команды, сыгравшие свою первую игру в сезоне, основываясь на их будущей статистике на конец сезона. Кроме того, многие статистические данные могут быть очень тесно связаны между собой и добавлять ненужную сложность модели. Пример, который приходит на ум, это подборы в атаке и сделанные удары. Чтобы улучшить это, я бы выдвинул пару гипотез и создал разные модели для их проверки.
  5. Модели всегда могут использовать больше данных, у меня было 70 тысяч личных записей, но лучшие модели могут использовать гораздо больше записей. Я также мог бы использовать другие источники данных (еще одна возможность решить проблему силы конференции).

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