Чемпионат мира по крикету среди мужчин ICC 2023 года станет 13-м по счету престижным однодневным международным турниром по крикету (ODI), проводимым раз в четыре года, в котором национальные мужские команды борются за первенство под эгидой Международного совета по крикету (ICC). В этом выпуске Индия станет принимающей страной, матчи пройдут с 5 октября по 19 ноября 2023 года. Примечательно, что первоначальный график, запланированный на февраль-март 2023 года, пришлось отложить из-за глобальной пандемии COVID-19.

Всего к участию в этом турнире готовятся десять команд, включая действующего чемпиона 2019 года из Англии. Что отличает это издание, так это то, что это будет первый раз, когда Индия будет единолично принимать чемпионат мира по крикету среди мужчин. В прошлом Индия сотрудничала с другими странами Индийского субконтинента, проводя это мероприятие в 1987, 1996 и 2011 годах.

Грандиозный финал этой крикетной феерии планируется развернуть на стадионе «Нарендра Моди» в Ахмадабаде 19 ноября 2023 года. Кроме того, полуфиналы пройдут на знаменитом стадионе «Ванкхеде» в Мумбаи и в исторических садах Эдем в Калькутте.

Цель:

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

Данные:

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

Я собрал данные с сайта HowStat.com, которые включают результаты матчей ODI после чемпионата мира 2015 года. Хотя я признаю, что точность модели, возможно, не является исключительно высокой, я считаю, что она дает достаточно хорошее представление о тенденциях. Я решил не включать матчи до чемпионата мира 2015 года, поскольку считаю, что недавние результаты более влиятельны, а более старые данные имеют меньший вес. Остальные файлы данных я взял с сайта Cricbuzz.

Окружающая среда и инструменты:

  1. Гугл Колаб
  2. Нампи
  3. Панды
  4. Сиборн
  5. Матплотлиб
  6. Scikit-обучение

Я шаг за шагом следовал общему рабочему процессу машинного обучения:

  1. Сбор данных
  2. Обработка данных
  3. Анализ и визуализация данных
  4. Исследовательский анализ данных
  5. Особенности проектирования
  6. Выбор модели
  7. Модельное обучение
  8. Оценка модели
  9. Интерпретация модели
  10. Окончательный прогноз

Программа:

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

1. Сбор данных

Я собрал данные с сайта HowStat.com, которые включают результаты матчей ODI после чемпионата мира 2015 года. Хотя я признаю, что точность модели, возможно, не является исключительно высокой, я считаю, что она дает достаточно хорошее представление о тенденциях. Я решил не включать матчи до чемпионата мира 2015 года, поскольку считаю, что недавние результаты более влиятельны, а более старые данные имеют меньший вес. Остальные файлы данных я взял с сайта Cricbuzz.

2. Обработка данных

Я начал с импорта необходимых библиотек для анализа данных.

После этого я загрузил набор данных, содержащий результаты матчей ODI после чемпионата мира ODI 2015 года, и набор данных, содержащий недавние рейтинги команд.

3. Анализ и визуализация данных

Я проанализировал набор данных чемпионата мира, создав визуализацию на основе различных аспектов, включая количество титулов, выигранных каждой командой, их недавний рейтинг ICC ODI и процент побед на прошлых чемпионатах мира. Для целей визуализации я использовал Matplotlib и Seaborn.

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

4. Исследовательский анализ данных

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

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

5. Разработка функций

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

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

Преимущества разработки функций:

  1. Повышение производительности модели. Разработка функций повышает способность модели делать точные прогнозы путем создания или выбора соответствующих функций.
  2. Уменьшение размерности. Это помогает уменьшить количество функций, что может привести к более быстрому обучению модели и улучшению обобщения модели.
  3. Расширенная интерпретируемость. Тщательно разработанные функции делают прогнозы модели более понятными, помогая интерпретировать результаты и глубже понимать данные.

Продолжая работу, я создал модель. Если команда-1 выигрывала матч, я присваивал ей метку 1; в противном случае, если команда 2 выиграла, я присвоил ей метку 2.

Затем я преобразовал команды 1 и 2 из категориальных переменных в непрерывные входные данные с помощью функции pandas pd.get_dummies. Эта переменная имеет только два варианта ответа: команда 1 и команда 2. Она создает новый фрейм данных, состоящий из нулей и единиц. В этом случае кадр данных будет иметь единицу в зависимости от команды конкретной игры.

Кроме того, я разделил обучающие и тестовые наборы, оставив 80% и 20% обучающих и проверочных наборов соответственно.

6. Выбор модели

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

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

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

Я использовал наивную теорему Байеса, Поддержка V.

ector Machines, Random Forests и K Nearest Neighbours для обучения модели.

Random Forest превзошел все остальные алгоритмы с точностью обучения 74,9% и точностью тестирования 67,3%.

7. Модельное обучение

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

Популярность модели «Случайный лес» объясняется ее различными преимуществами:

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

8. Оценка модели

Давай продолжим. Я добавил рейтинг команд ICC, отдавая приоритет команде с более высоким рейтингом, которая победит в этом году.

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

Затем я добавил команды в новый набор данных прогнозирования на основе рейтинговой позиции каждой команды.

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

9. Интерпретация модели

В конечном итоге следующий код предназначен для получения результатов каждого матча на этапе лиги.

За результатами обращайтесь в соответствующий блокнот. В полуфинал выходят четыре команды: Австралия, Индия, Англия и Пакистан.

А затем я создал функцию, повторяющую описанную выше работу. Это последняя функция для прогнозирования победителя чемпионата мира по крикету ICC 2023 года.

Я запустил функцию прогнозирования полуфиналов.

Таким образом, двумя финалистами являются Австралия и Индия, что совершенно очевидно, поскольку они считаются фаворитами на победу в этом году. Кроме того, они занимают первое и второе места в рейтинге ICC.

10. Окончательный прогноз

Наконец, при запуске основной функции.

Согласно этой модели, Индия, скорее всего, выиграет этот чемпионат мира.

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

Полный проект доступен на Github.