Крикет - один из самых популярных видов спорта в Индии. В частности, формат Twenty20 - один из самых известных захватывающих коротких форматов, потому что результат имеет максимальную неопределенность. Крикет - это спортивная игра, в которую во всем мире играют в 106 странах-членах Международного совета по крикету (ICC), у которого, по данным ICC, почти 1,5 миллиарда фанатов по всему миру. Трудно предсказать результат матча, потому что одна верхняя или одна калитка, одна граница или один мяч без мяча могут изменить динамику матча.

Индийская премьер-лига - одна из самых популярных лиг крикета Т20 в мире. В Индии IPL - одна из самых известных национальных лиг после турниров ICC. Итак, разработка модели для прогнозирования результата совпадения - это реальная проблема машинного обучения. В матче по крикету многие факторы будут влиять на результат игры Twenty20 в зависимости от таких характеристик, как место проведения, победитель жеребьевки, пробежки, набранные в Powerplay и т. Д. Таким образом, мы прогнозируем результаты матча на основе этих характеристик. Набор данных состоит из всех матчей, сыгранных с 2008 по 2020 годы.

Что такое машинное обучение?

Машинное обучение - это приложение искусственного интеллекта (ИИ), которое предоставляет системам возможность автоматически учиться и совершенствоваться на основе опыта без явного программирования.

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

Машинное обучение подразделяется на 3 типа

1. Под наблюдением 2. Без присмотра 3. Обучение с подкреплением

Обучение с учителем

В модели обучения с учителем алгоритм учится на помеченном наборе данных, чтобы генерировать разумные прогнозы для ответа на новые данные. (Прогнозирование результатов по новым данным)

i) Регрессия ii) Классификация

i) Регрессия. Модель регрессии используется для прогнозирования непрерывного значения, т. е. числового значения. Предположим, что прогнозирование цен на жилье имеет такие характеристики дома, как размер, цена и т. Д. Другой распространенный пример - прогнозирование заработной платы сотрудника на основе его / ее возраста (чем больше возраст, тем больше зарплата сотрудника).

Регрессия определяется как Y = a + bX

Y представляет зарплату, X - возраст сотрудника, а a, b - коэффициенты уравнения.

ii) Классификация: - Задача классификации - это статистический метод анализа набора данных, в котором результат является дихотомической переменной (результат может быть только 2 или более переменных класса). Цель логистической регрессии - найти наиболее подходящую модель для описания ч / б зависимой и независимой переменных.

Обучение без учителя

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

i) Кластеризация ii) Обнаружение аномалий iii) Ассоциация iv) Автоэнкодеры

Обучение с подкреплением

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

Примечание: «Наша проблема - это задача классификации, поэтому мы уделяем больше внимания классификации».

Чтобы узнать больше о машинном обучении, посетите этот блог



Почему машинное обучение / анализ данных популярны в спорте?

«Данные» «Данные» «Данные». Да! В настоящее время данные генерируются повсюду: отправка денег онлайн, бронирование билетов, заказ такси, покупки в электронной коммерции, датчики, здравоохранение, банковское дело, производство, что не везде и т. Д. Каждая услуга / продукт, которые мы используем, генерирует данные. Многие компании извлекают огромные объемы данных для принятия лучших решений.

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

В настоящее время машинное обучение эффективно используется в различных случаях в спорте, как на поле, так и за его пределами. В полевых условиях машинное обучение применяется для анализа уровня подготовленности игроков, разработки эффективных тактик или принятия решений о выборе бросков и стратегий. Он также используется для прогнозирования результатов игрока или команды или исхода матча. Другая область касается деловой точки зрения спорта, которая включает понимание структуры продаж (например, билеты, товары) и соответствующее назначение цен. В спортивной аналитике на местах обычно используются алгоритмы машинного обучения с учителем, например: (i) регрессия для расчета физической подготовки игрока, (ii) классификация для прогнозирования исхода матча; в то время как аналитики на местах не обращают внимания на выполнение анализа настроений, чтобы понять мнение людей об игроке, команде или спортивной лиге. В настоящее время Twitter стал одним из основных источников данных для анализа настроений.

Давайте погрузимся в построение модели…

Набор данных:

Мы собираемся спрогнозировать результат матча IPL на основе пробежек и калиток Powerplay.

Данные собираются из @Kaggle, состоящего из 756 совпадений. Из-за неожиданной пандемии коронавируса многие думали, что IPL невозможно в этом году. Но, как фанат крикета, я должен поблагодарить Контрольный совет BCCI TV за крикет в Индии, правительство Дубая и президента BCCI «Сурав Гангули», все прошло гладко и успешно. Я включил все данные матчей, состоящие из 812 совпадений. В дополнение к данным, собранным с Kaggle, я также добыл раунды и калитки для каждого матча. Некоторые из функций включают команду A, команду B, идентификатор, дату, победителя жеребьевки, решение о броске, тип поля, победителя (целевая переменная), игрока матча, результат, команды Powerplay, команды A и B, команды Powerplay калиток A и B, место проведения , так далее.

Эти функции помогают нам предсказать победителя матча на основе пробежек и калиток Powerplay до завершения матча. Хотя это звучит слишком странно, прогнозировать результат матча только на основе Powerplay. Но мы были свидетелями многих матчей, в которых, если команда теряла более 4 калиток, преследовала цель 180–200. Для команды крайне невозможно достичь этой цели, если у нее нет сильного состава среднего уровня, такого как @MumbaiIndians & @ Chennai Super Kings . Некоторым командам нравится забивать в середине овера и максимально использовать его, преследуя или задавая цель. Итак, предсказать победителя - непростая задача, но если у нас есть большой объем данных, модель может эффективно учиться. «Данные - это наше ограничение здесь». Чем больше данных, тем лучше модель, которую мы можем построить.

Вы можете найти полный набор данных здесь.



Первые дела в первую очередь

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

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

2. Аналогичным образом соответственно закодирована и команда B.

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

4. Победитель (целевая переменная) кодируется, где, если предположим, что команда А выиграла матч, кодируется как 0 иначе 1.

5. Нам нужно обрабатывать отсутствующие значения, если они есть.

6. В наборе данных присутствуют некоторые ненужные столбцы, такие как id, дата, сезон, dl_applied, result, Судьи 1/2/3, игрок матча, место проведения, выигрыш по сериям, выигрыш по калиткам и т. Д.

7. Вышеупомянутые столбцы бесполезны для построения нашей модели.

Так выглядят наши данные после очистки и удаления ненужных столбцов.

Все готово !!!! Приступим к построению модели.

  • Поскольку мы знаем, что Winner - это целевая переменная / функция, нам нужно ее разделить.
  • Разделение данных на 20% размера test_ с помощью train_test_split.
  • Предварительная обработка данных с помощью StandardScaler

Модель 1 (логистическая регрессия):

Scikit-Learn - самая полезная библиотека машинного обучения, которая выполняет такие задачи, как классификация, регрессия, кластеризация и т. д.

1. Итак, чтобы запустить модель, нам нужно импортировать LogisticRegression () из sklearn.linear_model.

2. Затем нам нужно обучить данные с помощью модели. подходящий метод

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

4. Итак, для оценки модели мы используем Матрицу оценки, известную как Матрица неточностей.

Чтобы узнать больше о Матрице путаницы, загляните в этот блог ...



Оценка точности:

из sklearn.metrics мы импортируем precision_score. Точность, полученная для логистической регрессии, составляет 70,5%.

Матрица неточностей: массив ([[44, 19],

[29, 71]])

Тем не менее, мы можем попробовать другие алгоритмы для большей точности.

Модель 2 (случайный классификатор Форреста):

  • Случайный Форрест - это метод ансамблевого обучения, используемый для классификации, регрессии и других задач. Случайный Форрест строится из нескольких деревьев решений, а затем получаемый результат представляет собой среднее предсказание этих деревьев решений.
  • Снова используем sklearn. ансамбль для импорта RandomForrestClassifier
  • n_estimators обозначает количество деревьев, используемых в лесу. нам нужно настроить этот параметр для лучшей производительности.
  • критерий измеряет качество разделения. «Джини» используется в нашей модели, которая вычитает сумму квадратов вероятностей каждого класса.
  • Для подгонки модели используем модель. подходящий метод.
  • Далее все, как обычно, как в модели . прогнозирование, матрица путаницы, оценка точности.

Оценка точности : 64%

Матрица неточностей: [[38 25]

[[33 67]]

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

Попробуем другие алгоритмы.

Модель 3 (классификатор повышения градиента):

  • Алгоритм повышения градиента также используется как для задач классификации, так и для задач регрессии, где он создает модель прогнозирования на основе слабых учащихся и объединяется для формирования более сильной модели, обычно он использует деревья решений.
  • Learning_rate - это весовой коэффициент, используемый для корректировок новыми деревьями при добавлении в модель. Существует компромисс между Learning_rate и n_estimators. Обычно используется Learning_rate 0,1, но мы можем изменить это значение до 0,05 до 0,3.
  • из sklearn.ensemble импортируем GradientBoostingClassifier
  • мы используем разные Learning_rate, чтобы получить хорошую оценку точности на наборе для проверки.
  • Затем мы настраиваем параметры для повышения точности модели.
  • Параметры, используемые в Gradient Boosting: n_estimators = 10, Learning_rate = 0.1, max_features = 2, max_depth = 2, random_state = 0

Оценка точности: после передачи этих параметров мы получаем точность 72%.

Матрица неточностей: [[59 39]

[ 27 119]]

Модель 4 (классификатор XGBoost):

  • Для импорта XGboostClassifier мы используем Xgboost.
  • XGBoost - популярный алгоритм, который в последнее время активно используется в машинном обучении. Это реализация деревьев принятия решений с градиентным усилением, разработанная для скорости и производительности.
  • Нам нужно настроить параметры XGboost для лучшего результата.

Взгляните на код XGBoost…

from xgboost import XGBClassifier
xgb=XGBClassifier(learning_rate =0.01,
              n_estimators=1000,
              max_depth=10,
              min_child_weight=4,
              gamma=0.1,
              subsample=0.3,
              colsample_bytree=0.8,
              objective= 'binary:logistic',
              nthread=4,
              scale_pos_weight=3,
              seed=27, 
              reg_alpha=0.001,
              n_jobs=4)

Оценка точности:

После прохождения этих параметров мы достигли точности 74,18%, что намного лучше по сравнению с другими моделями.

Матрица неточностей: [[47 51]

[ 12 134 ]]

Алгоритм XGBoost имеет лучшую точность ~ 75% по сравнению со всеми другими моделями. Тем не менее, мы можем попытаться повысить эту точность, настроив параметры модели. Я также пробовал использовать GridSearch CV, но не смог найти более точной информации. Итак, если у нас есть больший объем данных, модель может предсказывать гораздо более эффективно.

В заключение, IPL / T20 - это турнир, победитель которого может быть непредсказуемым. Даже прогнозирование модели машинного обучения иногда может ошибаться. Результат матча может быть достигнут разными способами, например, с помощью очков игроков, командных комбинаций и т. Д. Здесь, для этого исследования, я выбрал, как можно использовать powerplay для прогнозирования победителя матча. Некоторые команды делают быстрые пробежки во время игры в большинстве, чтобы получить хороший результат на доске. С другой стороны, некоторые команды играют медленно в большинстве, но в середине овера они начинают бить. Итак, все зависит от дня матча, соперников, с которыми они играют, типа поля и т.д. полная картина анализа.

Полный код можно найти в указанной ниже ссылке на Github.



«Обучайте машины, изучая Машинное обучение 😀👨‍💻»