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

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

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

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

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

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

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

Я также заметил, что количество выступлений на Матче всех звезд в этом списке из топ-50 быстро уменьшилось и, скорее всего, скоро достигнет нуля, прежде чем попадет слишком далеко в более крупный набор данных из 4500 игроков (~ 4000 без активных игроков). Поэтому я посмотрел, сколько игроков не участвовали в Матчах всех звезд по сравнению с тем, сколько игроков сыграли хотя бы один. Я обнаружил, что только 369 игроков имели хотя бы один матч в Матче звезд за свою карьеру по сравнению с 3687 игроками, у которых ноль за всю свою карьеру:

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

Ради интереса я также визуализировал, какие команды НБА больше всего играли в Матчах звезд:

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

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

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

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

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

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

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

Чтобы оценить производительность этой модели, я вычислил среднеквадратичную ошибку, среднеквадратичную ошибку и оценку R²:

С этой моделью производительность была тусклой, но не ужасной. Оценка R² около 0,346 указывает на то, что модель линейной регрессии может объяснить только около 34,6 процента дисперсии в распределении матчей всех звезд по количеству очков на игрока.

Затем я использовал линейную регрессию, чтобы смоделировать взаимосвязь между результатами сезона (количество сыгранных сезонов в НБА) и выступлениями в Матчах звезд. Вот что показали мои результаты:

Эта модель показала худшие результаты, чем модель, набранная очками по сравнению с выступлениями на Матче звезд. Одним из объяснений этого может быть то, что опыт сезона предлагает менее коррелированный показатель для индивидуальных результатов, чем количество очков, поскольку многие игроки имеют долгую карьеру, не будучи All-Stars в своей команде. Еще одним аспектом, который, вероятно, способствовал снижению эффективности этой модели, была ограниченная точность данных сезонного опыта; Показатель сезонного опыта - это просто количество лет, проведенных ими в НБА, диапазон которых гораздо более ограничен, чем количество очков, которые набирает игрок в среднем.

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

Эта модель показала лучшие результаты, и, безусловно, она имела точность около 90% на тестовых наборах как для «очков», так и для «опыта сезона». В этом есть смысл, поскольку, исследуя эти данные, я заметил, что взаимосвязь между очками и выступлениями в Матчах звезд казалась очень нелинейной.

На самом деле, казалось, что это распределение соответствует степенному закону: сотни лучших игроков имеют больше выступлений на Матчах звезд, чем тысячи нижних игроков вместе взятые. Как отмечалось в моем исследовании данных, более 3600 нижних игроков вообще не участвовали в Матчах звезд. Это почти в 10 раз больше, чем у игроков, которые хотя бы раз играли в Матче звезд (369 игроков).

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

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

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

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