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

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

Из графика (известного как дендрограмма) видно, что точки B, C и D, E очень похожи друг на друга. Точка А крайне непохожа на все остальные точки — она не была объединена до последнего шага.

А теперь представьте, что каждый подходящий игрок НБА¹ в сезоне 2019–20 гг. представлен одним очком. Таким образом, имея в нашем анализе 111 игроков, мы начинаем со 111 отдельных кластеров, используя агломеративную кластеризацию. На каждой следующей итерации самые близкие (наиболее похожие) пары кластеров объединяются до тех пор, пока не останется только один кластер.

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

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

from sklearn.preprocessing import StandardScaler 
from sklearn.decomposition import PCA 
import scipy.cluster.hierarchy as shc 
import matplotlib.pyplot as plt 
import pandas as pd 
import numpy as np 
testdf = df[(df.MPG > 23) & (df.GP > 15) & (df.SEASON == '2019-20')].reset_index(drop=True) 
features = [x for x in df.columns if (x != 'PLAYER_NAME') & (x != 'POSITION') & (x != 'SEASON')] 
x = testdf.loc[:, features].values 
y = testdf.loc[:,['PLAYER_NAME']].values 
x = StandardScaler().fit_transform(x) # standardize all values
pca = PCA(n_components=0.99) 
principalComponents = pca.fit_transform(x) 
plt.figure(figsize=(8,22)) 
plt.title('2019-20 NBA Hierarchical Clustering Dendrogram') 
dend = shc.dendrogram(shc.linkage(x, method='ward'),labels=list(testdf.PLAYER_NAME),orientation='left') 
plt.yticks(fontsize=8) 
plt.xlabel('Height') 
plt.tight_layout() 
plt.show()

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

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

  • На первый взгляд кажется, что голубо-голубая группа содержит ролевых игроков, красная группа содержит доминирующих с мячом защитников и нападающих, а зеленая группа в основном состоит из больших мужчин. Есть некоторые исключения², и я уверен, что есть лучший способ описать тенденцию, но это первое, что мне бросается в глаза.
  • Наиболее похожим на Леброна Джеймса игроком, по-видимому, является Лука Дончич. В этом есть смысл — они оба универсальные нападающие, которые заполняют листы статистики, но при этом довольно хорошо владеют мячом. Они оба обладают сверхъестественным чувством игры, которое повышает производительность их товарищей по команде. Я думаю, что Леброн на шаг выше Луки в обороне, но сходство есть.
  • Сравнение между Эмбиидом и Дэвисом имеет для меня большой смысл. Оба являются одними из лучших защитников лиги. Они также чрезвычайно ценные нападающие, но немного непоследовательны в плане бросков по мячу. Они оба, вероятно, стреляют в прыгунов немного чаще, чем должны, поскольку их навыки лучше всего подходят для низкой стойки.
  • Наиболее похожим на Зайона Уильямсона игроком является… Монтрезл Харрелл. Оба игрока невероятно атакующие бигмены, несмотря на их невысокий рост по сравнению с другими бигмэнами. У них также есть недостатки в оборонительной стороне мяча. Вроде разумное сравнение.
  • Кластер ролевых игроков в жанре «хватай и стреляй»! Джей Джей Редик, Дэвис Бертанс, Лэндри Шамет и Дункан Робинсон объединены друг с другом в кластер. Все они в основном действуют без мяча в руках, а когда мяч у них есть, они эффективно забивают трехочковые.
  • Сравнение Татума и Сиакама имеет смысл не только в данных: оба молодых игрока представляют собой будущее двух сильнейших команд Восточной конференции. Ну и настоящее. Они уже звезды, конечно.
  • Мне нравится сравнение между Джру Холидей и Эриком Бледсо. Оба являются одними из лучших защитников лиги, и при этом их результативность гораздо более посредственная.
  • Видите группу с Уэстбруком, Батлером и ДеРозаном? Назовем это кластером «элитных защитников и нападающих, которые борются с трехочковыми».
  • Мне нравится группа с Полом Джорджем, Каваем Леонардом, Крисом Миддлтоном, Джейсоном Татумом, Брэндоном Ингрэмом, Заком Лавином и Паскалем Сиакамом. Все они нападающие, которые могут быть элитными и универсальными бомбардирами. Там тоже довольно большой разброс по возрасту.

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

'2019-20' в коде можно легко заменить на любой из семи последних сезонов, так что давайте совершим путешествие в прошлое, взглянув на дендрограмму игроков НБА в регулярном сезоне 2013-14 гг.

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

Сравнение Леброна Джеймса и Кевина Дюранта забавно из-за того, как много людей, вероятно, участвовали в спорах о двух великих игроках всех времен после исторического сезона Дюранта MVP в 2014 году. Эти споры также возникали в последние несколько лет, когда Дюрант работал с Воины.

Также здорово видеть, что самым похожим на Стефена Карри игроком на тот момент был Джеймс Харден. Карри набирал в среднем 24 очка за игру для 51–31 Warriors в 2014 году, а в среднем 25 PPG для 54–28 Rockets. Они оба были очень хорошими игроками в то время, но никто не мог предсказать, насколько хорошими они станут.

Хорошо, я оставлю это на этом. Понаблюдайте за другими интересными вещами самостоятельно, там осталось много информации. Вы можете ознакомиться с Частью I и Частью II из серии, в которой я ранее скомпилировал и использовал эти данные, вместе со всем кодом из этой серии здесь, в этом репозитории GitHub.

  1. Игроки, сыгравшие не менее 23 минут за игру не менее чем в 15 играх.
  2. Донте ДиВинченцо не доминирует над мячом, Блейк Гриффин не играет роль, Дрэймонд Грин не крупный мужчина и т. д.

Первоначально опубликовано на https://www.thespax.com 3 июня 2020 г.