划分亚洲国家的三个足球梯队

数据描述:
id :国家对应id
国家:国家名称
2019年国际排名:2019 年国际足联的世界排名。
2018年世界杯:2018 年世界杯中,很多球队没有进入到决赛圈,所以只有进入到决赛圈的球队才有实际的排名。如果是亚洲区预选赛 12 强的球队,排名会设置为 40。如果没有进入亚洲区预选赛 12 强,球队排名会设置为 50。
2015年亚洲杯:真是排名。

在这里插入图片描述

1、获取数据:使用pandas读取数据
在这里插入图片描述
2、数据处理:归一化数据
在这里插入图片描述
3、模型训练:利用sklearn中的K-Means算法实现聚类,K=3
在这里插入图片描述在这里插入图片描述

4、模型可视化:利用matplotlib包中的方法画出三维图,并按照预测类别的不同,使用不同的颜色表示。
在这里插入图片描述

在这里插入图片描述

代码如下:

import pandas as pd
data = pd.read_csv(r"D:/pyCharm/asina_football_data.csv")
print(data.head())
train_x = data[[‘2019年国际排名’, ‘2018年世界杯’, ‘2015年亚洲杯’]]
df = pd.DataFrame(train_x)

from sklearn import preprocessing
min_max_scaler=preprocessing.MinMaxScaler()
train_x=min_max_scaler.fit_transform(train_x)

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
kmeans.fit(train_x)
predict_y = kmeans.predict(train_x)
result = pd.concat((data,pd.DataFrame(predict_y)),axis=1)
result.rename({0:u’梯队编号’},axis=1,inplace=True)
#print(result.head())
print("----------------------------------------------------")
tx = result[[‘国家’,‘梯队编号’]]
print(tx.head())

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib
font = {‘family’: ‘MicroSoft Yahei’,
‘weight’: ‘bold’,
‘size’: 10}
matplotlib.rc(“font”, **font)
xs = data.iloc[:,2]
ys = data.iloc[:,3]
zs = data.iloc[:,4]
fig = plt.figure()
ax=Axes3D(fig)
name = data.iloc[:,1]
for label,x,y,z in zip(name,xs,ys,zs):
ax.scatter(x,y,z)
ax.text(x, y, z, label)
cValue = [‘r’,‘y’,‘g’,‘b’,‘r’,‘y’,‘g’,‘b’,‘r’]
ax.set_xlabel(‘2019年国际排名’)
ax.set_ylabel(‘2018年世界杯’)
ax.set_zlabel(‘2015年亚洲杯’)
plt.show()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值