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

Однако при взгляде на статистику игроков появляются некоторые странности. У разыгрывающего, такого как Бен Симмонс, точность штрафных бросков в среднем составляет 62 %, трехочковых — 29 %, а количество подборов за игру — чуть менее 8 (в среднем за 2019–2020 гг.) или центровой например, Келли Олиник, у которой в среднем 41% точности трехочковых и менее 5 подборов за игру (в среднем за 2019–2020 гг.), не дает статистического представления, которого можно было бы ожидать от их соответствующих позиций на площадке.

Классическая риторика состоит в том, что игра развилась так, что границы между позициями становятся размытыми. С мощными нападающими и центровыми, которые больше владеют мячом (Никола Йокич) или чаще набирают трехочковые (Карл-Энтони Таунс), а защитники делают больше подборов (Рассел Уэстбрук), можно легко понять, почему существует такая риторика. Однако так ли это на самом деле правда, и действительно ли игра так радикально изменилась?

Я решил ответить на этот вопрос двумя способами. Во-первых, можно ли создать модель машинного обучения для прогнозирования позиций игроков исключительно на основе игровой статистики игроков (то есть без роста, веса, размаха крыльев и т. д.)? Во-вторых, меняется ли точность модели при обучении и тестировании на современных игроках (скажем, 2010 года и далее) и игроках из прошлого (скажем, с 1979 по 1989 год). Я специально выбрал 1979 год, так как сезон 79-80 был первым сезоном, в котором была введена трехочковая линия. Если верна традиционная риторика о том, что различие между позициями стало более размытым, модель, основанная на прошлых игроках, должна работать точнее.

Разработка функций и анализ данных

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

Затем статистика каждого игрока была преобразована в значение per-36, которое является их статистикой, если бы они сыграли 36 минут, исходя из минут, которые они сыграли, и их статистики. Это распространенный метод, также используемый баскетбольными аналитиками, поскольку он позволяет им сравнивать нескольких игроков, не беспокоясь об их сыгранных минутах. Также рассчитывались соотношение передач к текучести и значения Эффективность НБА для каждого игрока.

Необработанные данные не дают точной позиции для каждого игрока, но иногда дают сочетание, такое как «SF-PF» или «SG-SF». Чтобы не принимать решения о позициях, которые впоследствии могут вызвать проблемы (например, являются ли Рассел Уэстбрук и Лука Дончич разыгрывающими или атакующими защитниками?), я объединил все позиции игроков в защитника (G), нападающего (F) или Центр (С).

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

После приведенных выше гистограмм становится ясно, что некоторые признаки можно удалить, так как они не являются отличительными признаками для позиций игроков. Были удалены следующие функции: FG/36, FGA/36, eFG%, 2P/36, 2PA/36, 2P%, PTS/36, FT/36, FTA/36, FT%, STL/36.

Создание и оценка модели

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

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

Те же шаги по разработке признаков и созданию модели были выполнены для данных от игроков старшего возраста (от сезона 79–80 до сезона 89–90). Результаты ниже:

Хотя модель более старой эпохи имела более точную модель KNN, она имела более низкую точность модели логистической регрессии. Просто чтобы проверить еще одну эпоху, эпоха нулевых (от сезона 00–01 до сезона 09–10) обрабатывалась так же, как и другие. Результаты ниже:

Исход

В начале было два вопроса. Во-первых, можно ли создать модель для прогнозирования позиции игроков НБА на основе их игровой статистики. Ответ на этот вопрос да, и независимо от эпохи точность составляет около 80%.

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

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

Полный блокнот можно найти здесь.