Рубрики
Без рубрики

Footy Toping с машинным обучением: 2019 Обзор сезона

Хороший, плохой, и багги от прогнозирования результатов матча AFL с моделью обучения машины. Помечено Python, машинное обучение, наука о данных, спортсменках.

Я недавно закончил мой второй сезон ML Footy Twuking (если вы заинтересованы, вы можете проверить ранее пост для более контекста на что, черт возьми, это значит), и, хотя я не повторил Путь к офисам-комп-славе (без призовых денег, без мусора, по крайней мере, не для меня), сезон не был без личных бликов. К сожалению, они были более извлеченными уроками, созданием персонажей, а не сокрушительными противниками, сюжетыми складами сорта их женщин. Итак, что я узнал за прошедший год, чтобы сделать всю душевную боль на поражении стоит? Ну, я определенно улучшил свой рабочий процесс и методы кодирования машин и кодировкой, оба из которых были большие боли в течение года, но я также сделал множество новых ошибок, которые будут проинформировать мои цели на следующий год.

Должен признаться: это становится лучше

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

  1. Сделать более разведочный анализ данных
  2. Не прыгайте прямо к фантазии, сложные модели
  3. Приложить усилия в дизайн кода, чтобы продлить его проще
  4. Придумать лучшее имя для модели

1. Сделать немного EDA

Я проглотил исследовательский анализ данных (то есть я ничего не сделал), разработав мою модель на 2018 год, полагаясь на метод грубой силы ловить кучу данных поверх алгоритма до него выглядел верно . Я избегал этого в тренажере до сезона 2019 года, глядя в Основная эвристика Для прогнозирования результатов матча (например, всегда выбирайте домашнюю команду, всегда выбирайте фаворит), а также Анализ тенденций и данные (или его отсутствие) за импульсом. Можно всегда сделать все больше и лучший анализ, но я получил дополнительное понимание австралийских правил футбола, как это сыграно, и какая статистика имеет значение, в которой сообщили мою функцию зданию и модельной настройке позже в процессе.

2. Сравните разные модели

Будучи новичком на машине, я купил в шумиху и начал с глубоких учебных и ансамблевых моделей, даже не глядя на более простые линейные модели. Я не повторил эту ошибку, и, хотя я закончил с бакетным ансамблем моделей XGBOOST, я изучил важный урок, сравнивая многослойные нейронные сети до линейных моделей и основных ансамблей (например, случайных лесов, градиентных бустеров) и нахождение того, что По крайней мере, без большего количества данных, их производительность была подавлена, особенно учитывая, насколько дольше они берут в поезд.

3. Напишите лучший код

По мере приближения к сезону AFL 2018 года моя первая чаевая модель стала запутанным беспорядком сценариев, полупспеченных классов и жесткокодируемых ценностях, что делает какое-либо расширение функциональности, даже что-то простое, как добавление новых столбцов на набор данных, Геркулесская задача о порядке уборки авенских конюшни. С тех пор я многому научился кодировать лучшие практики и поклял, чтобы написать более гибкий код для следующей модели и его окружающей среды. Подобно ЭДА, можно всегда сделать лучше, но я собираюсь посчитать эту цель как и достигнутую. Я сделал некоторое смешивание и сопоставление функциональных и ориентированных объектно-ориентированных подходов, строительных трубопроводов с уменьшенным списком функций трансформации, но организация более широкого применения с различными классами. Я иногда переписал большие разделы приложения для адаптации к новым требованиям или моим собственным изменяющимся мнениям лучше всего организовать код, но фундамент был достаточно силен, чтобы позволить этому с меньшим количеством болей и меньшего количества ошибок, чем раньше. В частности, составляя трубопроводы функций, которые каждый выполняют одно преобразование, было серьезным улучшением наличия нескольких классов, чьи трансформировать Методы составили do_all_the_feature_building_at_once Отказ

4. Придумать лучшее имя

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

Tipresias 1.0: 2019 Выступление

Несмотря на различные улучшения в моих процессах и коде, результаты были не совсем достойны оборудования. В моем офисном соревновании, который действительно имеет значение, я закончил 4-е с 132 советами (то есть правильные прогнозы) в конце регулярного сезона, намного за победителем, который получил 137. К концу сезона после того, как конфетти был пронесен из Пунта-роуд, у меня было 137 советов (точность на 66,18%), хорошо за пределы ставок, которые предпочитали возможный победитель 140 раз (точность 67,63%). Я имею в виду абсолютная ошибка (МАЭ) (то есть как далеко я предсказал победившую маржу), также был немного выше на 26,77 против 26.25 для шансов ставок. Это было сложнее, чем средний сезон для прогнозирования победителей, поскольку шансы-на фавориты, как правило, выигрывают примерно 72% времени (за последние 10 лет), а верхняя модель на Squiggle AFL Получил 139, тогда как прошлогодний победитель получил 147. Возможно, что Tipresias 1.0 особенно слаб в чрезвычайной сезоне расстроенного сезона, но более вероятно, что я получил бы подраздел производительности независимо от контуров согласованности графика и команд. При анализе ниже я буду использовать шансы по ставкам как ориентир, потому что это простое общедоступное эвристическое для прогнозирования победителей, которые выполняют, а также главные, публично доступные статистические модели. Если я не могу побить шансы по ставкам, то я в неблагоприятном положении каждому Джо и Фло Шмо, который имеет смирение, чтобы просто выбрать фаворит от начала до конца.

Это сравнение точности прокатки шансов ставок и Tipresias показывает, что оба плохо проводились в начале сезона, что типично, как команды меняют розыскивающиеся и иногда тренеры в межсезонье, и это может быть трудно предсказать, что изменилось на лучшее и который для хуже. Также ясно, что Tipresias был последовательно ниже шансов по ставкам в течение всего сезона, сэкономить для одного раунда около середины сезона, и несколько поздних в течение года, который полностью из-за особенно ароматной раунда 22, который имел много Монетные матчи из которых oddsmakers только выбрали три из девяти, а Типрезии выбрали семь.

Даже с аномалией раунда 22, а внезапное погружение в поздние туры, общая тенденция заключается в том, чтобы увеличить досрочные раунды, поскольку Oddsmakers и статистические модели приспосабливаются к тем нерешенным изменениям, сплющимся вокруг середины Сезон, затем немного падает за последний третий или около того. Финал немного сложнее прогнозировать, чем матчи в середине сезона, потому что существует большая четность между командами (даже худшие финальные команды находятся в верхней половине соревнований в конце концов), но это не объясняет более низкую точность в поздние раунды регулярного сезона. Кусок обычных мышцов мудрости – это то, что, поскольку остальные раунды падают, как осколки мрамора перед зубилом скульпторов, выявлена форма сезона: команды получают ощущение того, какая позиция они закончат, и благополучно Вершина может отдохнуть некоторым игрокам, увеличивая свои шансы по терянию выброшенного матча, а команды, просто из финал, которые могут не делать все в своей власти, чтобы победить команды по меньшей ранге, потому что несколько потерь могут привести к лучшему проекту для следующих год. Одним из моих целей в межсезонье является ближе взгляда на эти изменяющиеся динамику в раундах и как они могут повлиять на прогнозы модели.

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

Хотя точность прокатки, с коротким окном, показывает Tipresias, имея хорошие несколько раундов и передача шансов ставок в результате, его общая точность не была выше в любой момент в течение сезона. Хотя производительность модели должна улучшаться в целом, одна область, в которой я буду сосредоточиться на этом межсезонье, будет пытаться повысить точность в ранних раундах, так как намного больше места для улучшения в течение этой части сезона, чем позже, когда большинство Эвристика и модели последовательно опрокидываются 70% – 80%. Выжимание дополнительных 5% – 10% точности из модели, которая уже большинство совпадений становится все более сложной, и я думаю, что есть еще некоторые легкие выгоды, чтобы быть в другом месте.

Особенности, функции везде

Итак, какие функции управляют Tipresias с курсом в пустые отходы вина-темного моря? Поскольку основной оценщик является XGBOST, мы можем получить веса всех функций, которые можно увидеть, что имело наибольшее влияние на решения модели. Можно получить эти значения из самой модели, но я использовал пакет модели-объяснения Eli5 , Поскольку он предлагает несколько функций для извлечения и визуализации базовых атрибутов немного проще. Даже с помощью этого пакета я обнаружил, что работал с ансамблем оценки XGBOOST, вложенных в мешковом оценке, вложенном в моем собственном пользовательском классе обертки немного боли, которую я надеюсь упростить следующую модель, чтобы помочь в анализе производительности. Мне удалось закрутить экземпляры XGBOOST и среднего размера их массы, чтобы получить ощущение того, какие функции большинству способствовали прогнозам окончательной модели. Я использовал важное значение по умолчанию «Получение» , отчасти потому что это по умолчанию. Однако смотреть в это немного больше, я обнаружил, что другой популярной метрики «Вес» , имеет тенденцию уменьшать важность категориальных переменных, и я хотел избежать того, что, как я верил, некоторые категории окажутся влиятельными в прогнозах модели. Итак, ниже 20 самых важных функций для Tipresias от усиление .

Что прилипает это то, что elo_pred_win безусловно, самая важная особенность в модели, с увеличением 0,39 по сравнению с AT_HOME , который является вторым, наиболее важно только с 0,049. Даже за пределами elo_pred_win. , вы заметите многие другие функции, которые начинаются с эло Отказ Это потому, что я включил Модель на основе ELO Как группа особенностей, которые я подал в ансамбльскую модель. Проблема в том, что поскольку достойная статистическая модель будет лучше, при прогнозировании результатов матча, чем практически любая другая единственная точка данных, она обязана иметь невыполненное влияние на модель, что она является частью. К сожалению, ELO не подвергается сомнению даже больше, чем шансы или Типрезий ставок, только достижение точности 60,87% (это было ближе к 70% во время обучения). Таким образом, быть чрезмерно под влиянием возможности переопущенной модели ELO (или тот, который был чрезмерно подвержен неудачным в расстройстве тяжеловесного сезона, если мы будем благотворительными), вероятно, есть что связано с Tipresias, выполняющими ниже ожиданий в 2019 году.

Поскольку создание Tipresias, я прочитал Google Правила мл , который является хорошим, практичным руководством к процессу разработки машины. Одно правило, которое застряло в моей голове, было # 40: «Хранить ансамбли простой». Я определенно нарушил это правило, включив статистическую модель в базовый набор данных, лечив его, как будто выходы модели были одинакового типа, что и необработанные данные о матчах и игроках. Следовательно, одна из моих первых больших изменений в Tipresias будет реструктурировать модель в ансамбле голосования, а не на ансамбль для пакетов, поэтому я могу отделить свои необработанные данные из базовых моделей и иметь четкую иерархию входов и выходов, заканчивая метам. -Эсиматор, который сделает прогнозы, основанные на прогнозах суб-моделей. Я должен посмотреть, что такое выступление для этого изменения, но я готов принять краткосрочный удар в интересах создания модели облегчения интерпретации. Я надеюсь, что это предложит представление о новых возможностях для улучшения долгосрочных производительности.

Я был удивлен присутствием «Регулярное» и «Финал» (то есть ли матч в обычном сезоне или финалах) к вершине списка функций-важных. Как я уже упоминал выше, я хочу более внимательно посмотреть на то, как прогнозируют прогнозы во время разных этапов сезона, и если есть какие-либо тенденции, которые содержатся из года в год. Важность этих функций круглого типа также предполагает, что это может быть плодотворной областью расследования.

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

Tipresias 2020.

Анализ производительности и ловушек текущей версии модели предлагает некоторые рекомендации о том, как я могу улучшить производительность на следующий сезон.

  • Сделать модель легче интерпретировать Это включает в себя разделительные функции модели-вывода из необработанных данных и упрощают структуру классов (то есть нет столько слоев классов обертки), так что инструменты интерпретации модели немного проще в использовании. Есть больше пакетов и форм анализа, чем я покрыл здесь, но я не смог их использовать, потому что они вызывают, о каких моделях они принимают ( мешка Конечно, не играл приятно с большинством из них), и какие классы подвергаются воздействию соответствующих функций анализа.

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

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

  • Добавьте доверие процента как часть прогнозов Это не связано с образцом модели, но соревнования по статистически ориентированным, включают метрику, называемую «Биты» Это измеряет ошибку модели в соответствии с уверенностью в данном прогнозе. Фигура доверия приходит естественным образом с ML классификаторами, но не регрессами. Тем не менее, мне требуется прогнозируемая маржа, которая приходит с регрессором, потому что это часть всех соревнований на разрывом. Одним из вариантов является добавление классификатора как часть модели, чтобы получить дополнительный процент. Возможная альтернатива – узнать больше о Конформное прогноз , который является способом добавления доверительных интервалов в регрессоров. Я до сих пор не уверен в целесообразности этого подхода, но это может позволить мне инженерировать какой-то доверие доверия к прогнозе от выпуска регресса.

Оригинал: “https://dev.to/englishcraig/footy-tipping-with-machine-learning-2019-season-review-55mc”