用python聚类kmeans算法球队状态分析
时间: 2023-06-23 13:51:46 浏览: 106
以下是用 Python 实现聚类 k-means 算法对球队状态进行分析的示例代码:
```python
import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('team_data.csv')
# 选择要聚类的指标列
X = data[['得分', '失分', '胜率']]
# 标准化数据
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 使用 k-means 算法聚类
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X_scaled)
# 获取聚类标签和簇心
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
# 将聚类结果添加到原数据集中
data['cluster'] = labels
# 绘制聚类可视化图
plt.scatter(X_scaled[:,0], X_scaled[:,1], c=labels)
plt.scatter(centroids[:,0], centroids[:,1], marker='*', s=300, c='r')
plt.xlabel('得分')
plt.ylabel('失分')
plt.show()
# 输出不同聚类的球队信息
for i in range(3):
print('聚类', i+1, '的球队:')
print(data[data['cluster'] == i]['球队名称'])
```
在上述代码中,我们首先读取了球队比赛数据,并选择了需要聚类的指标列。然后,使用 `StandardScaler` 对数据进行标准化处理,接着使用 `KMeans` 算法进行聚类,最后将聚类结果添加到原数据集中并可视化展示。同时,也输出了不同聚类的球队信息。
需要注意的是,这里的 `team_data.csv` 是一个包含了各支球队得分、失分、胜率等指标信息的数据文件。在实际应用中,我们需要按照实际情况收集和整理相应的数据。
阅读全文