КРИКЕТНЫЕ ДНЕВНИКИ: ПРЕДСКАЗЫВАНИЕ СООТВЕТСТВИЯ С ИСПОЛЬЗОВАНИЕМ ДЕРЕВА РЕШЕНИЙ
ЧАСТЬ I
Спортивная аналитика
Очень интересная отрасль аналитики, которую еще предстоит изучить в полной мере. Спортивная аналитика стала известна, когда статистика и базовая вероятность были применены к фильму «Денежный мяч», который является одним из моих любимых фильмов, и его приятно смотреть. За эти годы технологии развивались быстрыми темпами, и такие области, как аналитика здравоохранения, аналитика розничного рынка, показали множество потенциальных приложений, алгоритмы и машинное обучение изменили эти области. Хотя спортивная аналитика значительно улучшилась и продвинулась вперед, эта интересная область все еще отстает с точки зрения приложений в реальном спорте. Возьмем, к примеру, магистерскую программу: существует очень мало курсов, которые помогают найти новые таланты в интересной области спортивной аналитики, основанной на приложениях.
Цель: Цель этой статьи - познакомить вас с использованием алгоритма машинного обучения, называемого деревом решений или моделью CART в Cricket Analytics. Предсказание исхода матча (для конкретной команды) с использованием модели CART с использованием нескольких исторических показателей команды будет нашей основной целью в этой статье. Это может быть использовано фанатами крикета для прогнозирования победы или поражения своей команды в матче.
Обзор крикета
Крикет - это командная игра, состоящая из двух соревнующихся команд по 11 игроков в каждой, очень похожая на бейсбол, но не совсем на бейсбол. Три основных отдела крикета включают в себя Ватин, Филдинг и Боулинг. Бэтсмены несут ответственность за подсчет очков за пробеги для команды, ударяя их битой после боулера противоположной команды. Полевые игроки помещаются в поле для того, чтобы вывести игрока с битой и остановить количество пробежек, набранных командой ватин.
Подготовка набора данных
Это была задача, которая является наиболее трудоемким и сложным процессом . Обычно, когда вы создаете модель с нуля, это занимает около 70% вашего общего времени. Этот этап является наиболее важным этапом любой деятельности по построению Модели и, следовательно, занимает много времени. Существует множество шагов и итераций, которые необходимо выполнить, перечисленные ниже.
Сбор метрик: в реальном сценарии все данные недоступны, первый шаг - понять проблему и получить метрики, которые могут повлиять на модель.
· Парсинг данных: после того, как вы закончите сбор метрик, нам нужно использовать веб-парсинг или другие источники, чтобы получить ваши данные о метриках, определенных на первом этапе.
· Очистка данных. Перед тем, как вы начнете строить модель, необходимо выполнить большую очистку и анализ данных.
· Производные метрики. Используя все извлеченные метрики, нам нужно получить несколько метрик, комбинируя / изменяя данные в более удобный формат.
Здесь нам нужно использовать правило 70–30, 70% очищаемых данных бесполезны или не удаляются из набора данных.
Данные о крикете
Необработанные данные
Основная часть моих данных была взята с сайтов крикета, таких как espncricinfo и cricsheet.org. Я также взял данные индийской премьер-лиги из соревнований Kaggle, чтобы запустить свою модель. Я использовал аналогичный подход, описанный выше, для первого определения списка показателей, парсинга и очистки данных.
Ниже представлены изображение и описание необработанных данных, которые мы рассмотрели:
- Данные о поставках: этот набор данных состоит из данных по индийской премьер-лиге по всем матчам за 2008–2017 годы.
2. Данные о матчах: этот набор данных содержит список всех матчей, сыгранных в IPL с конкурирующей командой, место проведения матча, команда-победитель и несколько показателей за 2008–2017 гг.
Преобразование данных
Мы сосредоточимся только на построении модели, которая будет предсказывать исход матча Chennai Super Kings. Поэтому мы включили в IPL только матчи, сыгранные командой Chennai Super King. Ниже представлено изображение преобразованных данных:
Пояснение к показателям
Для упрощения категориальные данные преобразованы в числовые количественные переменные:
· Победитель: эти показатели представляют собой «1», когда Chennai Super Kings выиграли матч, и «0», если он проиграл матч.
· Команда против: это команда, против которой играет Chennai Super Kings. Ниже приведен индекс, который можно использовать для получения сопоставления.
· Победа по жеребьевке: показывает, какая команда выиграла жеребьевку. Он представляет собой «1», когда Chennai Super Kings выиграли матч, и «0», когда он проиграл жеребьевку.
· Домашняя площадка: в этом случае, если Chennai Super King играет в Ченнаи, она считается домашней площадкой. Представьте «1», если это домашняя площадка, и «0», если она не домашняя.
· Chennai Super King Batting Average: этот показатель рассчитывает средний результат, набранный Chennai Super Kings в последних 5 матчах IPL против любой команды, независимо от команды текущего матча.
· Среднее количество ударов по команде-сопернику: аналогично вышеуказанным показателям, но сделано для команды-соперника, которая играет против Chennai Super Kings.
· Win_Runs (WR): если выиграли Chennai Super Kings, этот показатель говорит нам о разнице побед по запускам.
· Win_Wicket (WW): если выиграли Chennai Super Kings, этот показатель говорит нам о разнице выигрышей по калиткам.
· Средняя маржа выигрыша (AWM): это комбинация двух показателей: Win_Runs, Win_Wicket
AWM = WR + 5 * WW
«5» в приведенной выше формуле было взято на основе опыта игры в крикет, который относит 1 калитку к 5 пробегам для матча по крикету T20, и анализ этого не проводился. Это одно из наших модельных предположений.
Модель прогнозирования совпадений
Мы будем использовать одну из очень простых и эффективных моделей машинного обучения под названием Decision Tree, CART или Trees, чтобы предсказать исход матча по крикету для Chennai Super Kings.
Обзор дерева решений
Это инструмент поддержки принятия решений, представляющий собой древовидную структуру для построения набора правил, которые предсказывают результат наших показателей, который необходимо спрогнозировать. Он классифицирует или предсказывает результат на основе набора предикторов. Набор определенных правил может быть реализован как для непрерывных, так и для категориальных переменных. Например: классифицируйте «письмо как спам или не как спам».
Правила: если (количество слов ›90) и (email_address = marketing) помечены как спам, это тип дерева решений, которое предсказывает, является ли письмо спамом.
Для абсолютного новичка, который хочет больше узнать о дереве решений, ниже приведена ссылка с описанием тем:
· Рекурсивное разбиение в дереве решений
· Как разделить: непрерывные и категориальные переменные в дереве решений
· Измерение примесей: индекс Джини и энтропия
Построение модели
Мы будем использовать R Studio для построения нашей модели прогнозирования совпадений, и мы будем использовать данные, показанные при подготовке набора данных.
· Установка библиотек в R: мы будем использовать rpart для построения классификатора дерева решений в R вместе с rpart.plot и кареткой.
· Импорт фрейма данных для модели: ниже вы найдете синтаксис R для импорта данных в R и сводную статистику переменных, выбранных для модели.
Сводная статистика: предоставляет обзор всех показателей в нашем наборе данных.
Метрики Team_Against, Home_Ground, Toss_Winner не будут иметь никакого смысла из данных, поскольку это качественные категориальные переменные, преобразованные в количественные категориальные переменные.
Данные обучения и проверки
Мы разделим наши данные на обучающие и категориальные.
· Тренировочные данные: мы будем использовать этот набор данных для определения набора правил или построения дерева решений на основе переменных-предикторов, чтобы предсказать результат выигрыша матча Chennai Super Kings.
· Данные проверки: они используются для проверки точности модели на основе набора данных, который не использовался для построения модели.
Мы разделили данные на 60% набор данных для обучения и 40% набор данных для проверки. Но позже мы обсудим получение наилучшего дерева решений, которое будет основано на множестве наборов данных для обучения и проверки. Нам также нужен тестовый набор данных, который не должен быть затронут при построении нашей модели для проверки точности нашего прогноза.
Создание дерева решений
Мы сгенерировали полностью выросшее дерево, в котором каждый конечный узел будет содержать чистый класс. Это даст нам 100% точность с обучающей моделью.
Полностью выросшее дерево
Полностью выросшее дерево приведет к проблеме, известной как перебор. Модель будет предсказывать результат набора данных обучения на 100%. Но мы построили модель для прогнозирования результата проверки набора данных, а не набора данных обучения. Модель с избыточным соответствием не сможет обеспечить высокую точность набора данных проверки и, следовательно, не является предпочтительной.
Сокращение дерева решений
CART / дерево решений сначала позволяет построить полностью выросшее дерево, а затем обрезать его по мере роста ошибки проверки. Мы сгенерируем несколько деревьев после обрезки и выберем лучшее дерево на основе минимальной сложности.
Создание лучшей модели
Нам нужно создать лучшую модель, которая будет предсказывать исход матча Chennai Super Kings. Мы выполнили следующие шаги:
· Разделите набор данных на три части: обучение, проверка и набор данных тестирования.
· Обрезал дерево
· Повторял два вышеупомянутых шага для создания множественного сокращенного дерева решений на основе множественного набора данных для обучения и проверки.
· Выбирайте лучшую модель, исходя из сложности затрат
Мы создали 5 складок, чтобы использовать нашу процедуру перекрестной проверки для выбора лучшей модели прогнозирования исхода матча.
В приведенной ниже таблице показана таблица параметров стоимости вместе с разделением в дереве решений. Чтобы выбрать из представленной ниже модели, нам нужно выбрать модель, которая дает нам минимальную жизнеспособную ошибку вместе с минимальным количеством разбиений.
Диаграмма лучшей модели
Ниже представлена диаграмма, созданная нашей моделью для определения набора правил, прогнозирующих исход матча, когда Chennai Super Kings играет в индийской премьер-лиге.
Точность модели
Мы будем проверять точность нашей модели на наборе тестовых данных, который представляет собой нетронутый набор данных, набор данных, который не использовался при построении нашей модели, то есть набор данных для обучения и проверки. Мы использовали функцию каретки в R, чтобы создать таблицу метрик путаницы, отображающую точность модели.
Ниже приведен результат точности нашей модели после всех хлопот, которые мы пережили выше:
Результаты
Мы достигли 77% точности в нашей модели, это означает, что если мы прогнозируем исход матча, когда Chennai Super Kings играет в индийской премьер-лиге, вероятность правильного прогноза будет 0,77.
Заключение
Наконец, мы построили модель после прохождения сложного процесса построения дерева решений. Мы разделили данные на данные обучения, проверки и тестирования. Окончательное дерево решений было составлено после последовательных складок в наборе данных для обучения и проверки. Мы узнали, что построение взрослого не является решением нашей проблемы прогнозирования матчей, поскольку это привело к проблеме, называемой чрезмерной подгонкой. После рекурсивного разделения и последовательных итераций мы выбираем модель, с которой сталкивается по метрике Cost Factor. Построение модели имеет среднюю точность 77%, для достижения более высокой точности нам необходимо повторить описанную выше процедуру, добавив в модель новые метрики.
Я буду готовить новые статьи о построении моделей в области спортивной аналитики и буду рад помочь вам, если у вас возникнут какие-либо вопросы в указанной выше статье.
Свяжитесь со мной для более интересного проекта. Спасибо за терпеливость.