对NBA数据实现聚类分析的代码
时间: 2023-10-26 07:12:57 浏览: 100
以下是使用Python实现对NBA数据进行聚类分析的示例代码:
```python
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# 读取数据
data = pd.read_csv('nba_data.csv')
# 数据预处理
data = data.dropna() # 删除缺失值
data = data.drop(columns=['Player', 'Pos', 'Tm']) # 删除非数值特征
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data) # 数据标准化
# 选择聚类数
wcss = [] # 存储每个聚类数的WCSS
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10, random_state=0)
kmeans.fit(data_scaled)
wcss.append(kmeans.inertia_)
# 绘制手肘图
import matplotlib.pyplot as plt
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('WCSS')
plt.show()
# 选择聚类数为3,进行聚类分析
kmeans = KMeans(n_clusters=3, init='k-means++', max_iter=300, n_init=10, random_state=0)
pred_y = kmeans.fit_predict(data_scaled)
# 输出聚类结果
result = pd.DataFrame({'Player': data['Player'], 'Cluster': pred_y})
print(result)
```
在这个示例代码中,我们使用了K-means算法对NBA数据进行聚类分析。首先进行了数据预处理,包括删除缺失值、删除非数值特征和数据标准化。然后使用手肘法选择聚类数,并进行了聚类分析。最后输出了聚类结果,包括每个球员所属的簇。
阅读全文