Эта краткая статья о том, как я применяю машинное обучение к данным игр MLB. Я пытаюсь использовать PITCH f / x. Данные включают скорость, скорость вращения, направление вращения или положение для классификации типов высоты тона. Вы можете посетить мой Github для получения подробной информации, результатов и кода этого проекта.

1. Данные и визуализация:
Данные взяты из Kaggle, они включают каждую поданную подачу и биты в течение регулярных сезонов MLB 2015–2018 годов. Данные каждой игры и имя каждого игрока можно найти в других файлах csv. Данные шага содержат 40 столбцов, в которых записываются скорость, скорость вращения, направление вращения, положение шага и ситуация на поле.

Вот цифра об общем количестве брошенных мячей. FF, который представляет собой Fastball с четырьмя швами, имеет наибольшее число, тогда как FO, PO (Pitchout), EP (Eephus), SC (Screwball) редко используются в игре. Поэтому эти типы высоты тона будут удалены во время предварительной обработки. IN (Преднамеренный мяч) также будет удален, потому что бессмысленно классифицировать такой тип поля, а также может не хватить данных для алгоритма. Я ввожу только часть данных в модели из-за вычислительных затрат, за исключением нейронной сети.

2. Предварительная обработка и оценка модели:

Как я уже упоминал в приведенной выше части, из данных будут удалены редкие участки из-за небольшого объема данных. На основе корреляционного анализа было исключено несколько функций, например, «end_speed» сильно коллинеарен «start_speed». Наконец, удаляются функции, которые фиксируют ситуацию на поле. Эти особенности просто не имеют отношения к движению бейсбола.

Я использовал конвейер для оценки различных классификаторов, включая SVM, случайный лес, гауссовский наивный байесовский анализ и логистическую регрессию. Отдельно оценивается модель нейронной сети. Оценка f1 составляет около 0,7, у SVM и Random Forest самая высокая оценка 0,75. Напротив, Gaussian Naive Bayes имеет самый низкий балл 0,65.

Однако лучшего гиперпараметра этих моделей я не искал. Нейронная сеть имеет лучший показатель f1 0,78. Я пробовал разные структуры нейронной сети и соответствующие гиперпараметры для модели. Поскольку нейронная сеть имеет лучшую производительность, последующее обсуждение будет сосредоточено только на нейронной сети.

3. Результат:

Отчет о классификации указывает, что некоторые типы высоты тона имеют относительно более низкую точность и отзывчивость. Эти типы шага включают FC (Cutter), FS (Splitter), FT (Fastball с двумя швами), KC (кривая кулака), SI (Sinker), и в отчете указано, что их показатель f1 составляет от 0,31 (FS) до 0,60 (FT). ). Очевидно, они также снизили общую точность модели. Кажется, что добиться значительного улучшения сложно. Хотя я искал лучшие гиперпараметры и пробовал другую структуру нейронной сети или функцию активации.

Но!!!

Что, если мы попытаемся классифицировать одного питчера, а не всех питчеров лиги?

Я выбираю Калитона Кершоу, Геррита Коула и Зака ​​Грейнке для работы над этой идеей. Оказывается, модель значительно улучшилась. Общий показатель f1 должен быть не менее 0,93 (Геррит Коул), модель Калитона Кершоу имеет лучший показатель f1 0,99! Кроме того, модели Зака ​​Грейнке и Геррита Коула составляют 0,97 и 0,93 соответственно.

Однако некоторые типы высоты тона по-прежнему имеют довольно низкую точность и отзывчивость. Если мы посмотрим на дополнительные детали в матрице недоразумений Геррита Коула, многие FT (36%) и SI (23%) были классифицированы как FF. Даже мы можем идентифицировать их на видео, но алгоритм все еще не может сделать это успешно. Одно из возможных решений - мы можем объединить разные характеристики в некоторые значения, которые больше связаны с траекторией или движением мяча. Ведь основная разница между FF и FT - это дополнительное движение.

Надеюсь, вам понравится этот эксперимент с PITCH f / x Data. Если у вас есть отзывы, свяжитесь со мной через LinkedIn.