Предсказание зарплат NBA с помощью машинного обучения

Прогноз зарплат NBA с помощью ML

Построение модели машинного обучения с использованием Python для прогнозирования зарплат в НБА и анализа наиболее влиятельных переменных

(Фото от Emanuel Ekström на Unsplash)

НБА выделяется среди наиболее прибыльных и конкурентных лиг в спорте. За последние несколько лет зарплаты игроков НБА находятся на восходящем тренде, но за каждым впечатляющим данком и трехочковым броском стоит сложная сеть факторов, определяющих эти зарплаты.

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

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

Весь код и используемые данные доступны на GitHub.

Понимание проблемы

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

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

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

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

Однако, превышение предела зарплаты не является редкостью, особенно для команд, стремящихся создать состав, способный бороться за чемпионство. Когда команда превышает предел зарплаты, она становится объектом действия налога роскоши. Налог роскоши накладывает штраф на команды, которые тратят сверх определенного порога, отговаривая команды от чрезмерных расходов и предоставляя дополнительные доходы для лиги.

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

Эволюция предела зарплаты в НБА с 1984 по 2023 год (Изображение от автора)

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

Данные

Целью этого проекта является прогнозирование зарплат игроков, заключающих новые контракты в следующем сезоне с использованием данных только предыдущего сезона.

Использовались следующие статистические данные:

  • Средние статистики за игру
  • Общие статистики
  • Расширенные статистики
  • Индивидуальные переменные: возраст, позиция
  • Переменные, связанные с зарплатой: зарплата предыдущего сезона, максимальный предел для предыдущего и текущего сезонов и % от предела этой зарплаты.
Распределение зарплаты для сезона 2022–23 (изображение автора)

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

Всего в этом исследовании было 78 характеристик для каждого игрока, плюс целевая переменная.

Большая часть данных была получена с помощью BRScraper, недавнего пакета Python, созданного мной, который позволяет собирать данные о баскетболе с Basketball Reference, включая NBA, G League и другие международные лиги. Все рекомендации, касающиеся причинения вреда веб-сайту или затруднения его работы, были соблюдены.

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

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

Например, представьте, что игрок подписывает контракт на 20 миллионов долларов на 4 года. Он получает примерно 5 миллионов долларов в год (очень редко все годы имеют одинаковую стоимость, обычно есть определенная прогрессия в зарплате около 5 миллионов долларов). Однако, когда свободный агент подписывает новый контракт, стоимость может измениться намного более существенно.

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

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

Сезоном интереса является сезон 2023–24, который наступает, но для увеличения количества образцов будут использоваться данные с 2020–21 года и позднее, что возможно благодаря выбору целевой переменной. Более старые сезоны не использовались из-за отсутствия данных о свободных агентах.

Таким образом, в выбранных трех сезонах находится 426 игроков, из которых 84 – свободные агенты сезона 2023–24.

Моделирование

В соответствии с разделением обучающей и тестовой выборок все свободные агенты сезона 2023–24 были включены исключительно в тестовую выборку, с сохранением примерно 70/30 разделения.

Изначально были использованы несколько моделей регрессии:

  • Метод опорных векторов (SVM)
  • Elastic Net
  • Случайный лес (Random Forest)
  • AdaBoost
  • Градиентный бустинг (Gradient Boosting)
  • Light Gradient Boosting Machine (LGBM)

Производительность каждой из них была оценена с использованием среднеквадратической ошибки (RMSE) и коэффициента детерминации ().

Формулу и объяснение каждой метрики можно найти в моей предыдущей статье, Предсказание MVP НБА с помощью машинного обучения.

Предсказание MVP НБА с помощью машинного обучения

Построение модели машинного обучения для предсказания MVP НБА и анализа наиболее влиятельных переменных.

towardsdatascience.com

Результаты

Рассмотрим всю выборку со всеми сезонами, полученные следующие результаты:

Значения RMSE и R², полученные разными моделями (изображение автора)

Модели показали хорошую общую производительность, с наименьшей RMSE и наивысшим R² среди них у Случайного леса (Random Forest) и Градиентного бустинга (Gradient Boosting), тогда как AdaBoost показал худшие метрики среди использованных моделей.

Анализ переменных

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

Снова, более подробное объяснение о SHAP и о том, как интерпретировать его график, можно найти в статье Прогнозирование MVP НБА с помощью машинного обучения.

График SHAP, связанный с моделью Случайного Леса (изображение от Автора)

Мы можем сделать несколько важных выводов из этого графика:

  • Минуты в игре (MP) и очки (PTS) в среднем за игру и общие являются тремя наиболее влиятельными функциями.
  • Зарплата предыдущего сезона (Salary S-1) и % от лимита этой зарплаты (% Cap S-1) также имеют большое влияние, занимая соответственно 4-е и 5-е места.
  • Продвинутая статистика не является преобладающей среди наиболее важных функций, только две из них присутствуют в списке, WS (Win Share) и VORP (Value Over Replacement Player).

Этот результат очень удивителен, так как в отличие от проекта с MVP, где преобладала продвинутая статистика в окончательном результате SHAP, зарплаты игроков значительно больше связаны с обычной статистикой, такой как минуты, очки и начало игр.

Это удивительно, потому что большинство продвинутых статистических показателей были разработаны именно с целью более точной оценки игроков. Отсутствие PER (Player Efficiency Rating) среди топ-20 (он занимает 43-е место) особенно поразительно.

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

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

Дополнительные результаты

Сосредоточимся на свободных агентах этого года и сравним их прогнозы с фактической зарплатой:

Основные результаты модели Случайного Леса для сезона 2023–24 (значения в миллионах) (изображение от Автора)

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

Начнем с верхней части: бывший MVP Рассел Уэстбрук — самый недооцененный игрок по мнению модели, что, по моему мнению, является фактом, учитывая его контракт на ~$4M/год с Клипперс. Эрик Гордон, Мейсон Пламли и Малик Бисли также находятся в похожей ситуации, получая небольшие контракты при хорошей игре. Д’Анджело Расселл также входит в эту пятерку, несмотря на зарплату в $17M/год, что указывает на то, что он должен зарабатывать еще больше.

Интересно отметить, что все эти игроки подписали контракты с аспирантами на чемпионство (Клипперс, Санс, Бакс и Лейкерс). Это известное явление, когда игроки выбирают зарабатывать меньше, чтобы иметь возможность играть за команду, которая может выиграть титул.

В средней части, Ториан Принс, Орландо Робинсон, Кевин Нокс и Деррик Роуз зарабатывают небольшие зарплаты, которые кажутся адекватными. Кэрис Леверт получает $15M/год, но также кажется стоящим такой суммы.

Внизу было назначено, что Фред ВанВлит является наиболее переоцененным игроком. Ракеты, являющиеся командой восстановления, сделали заметное движение с его новым трехлетним контрактом, стоимость которого составила 128,5 миллиона долларов. Они также подписали Диллон Брукса за стоимость, превышающую ожидаемую.

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

Выводы

Предсказание результатов в спорте постоянно вызывает трудности. От выбора цели до выбора игроков, этот проект оказался более сложным, чем ожидалось. Однако результат оказался довольно простым, и полученные результаты были очень удовлетворительными!

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

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

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

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

Опять же, весь код и используемые данные доступны на GitHub.

(Фото Мариуса Кристенсена на Unsplash)

Я всегда доступен на своих каналах (LinkedIn и GitHub).

Спасибо за внимание!👏

Габриэль Сперанца Пасторелло