大家好,我是微学AI,今天给大家带来机器学习实战案例,分析亚洲足球梯队。2022年卡塔尔世界杯将在本月进行,不到半个月就开幕了,本届世界杯通过预选赛已选出32支球队。
2022卡塔尔世界杯决赛圈名单如下,各大州的分布:
欧洲(13):比利时、克罗地亚、丹麦、英国、法国、德国、荷兰、塞尔维亚、西班牙、瑞士、威尔士、波兰、葡萄牙。
亚洲(6):卡塔尔、伊朗、日本、韩国、沙特阿拉伯、澳大利亚。
南美洲(4):巴西、阿根廷、乌拉圭、厄瓜多尔。
非洲(5):塞内加尔、突尼斯、摩洛哥、喀麦隆、加纳。
北美和加勒比海地区(4):美国、加拿大、墨西哥、哥斯达黎加。
遗憾还是没有看到国足的身影,那只能看看国足在亚洲处于哪个梯队。
下面是详细的代码介绍
一、前期工作
1. 导入库包
from sklearn.cluster import KMeans
from sklearn import preprocessing
import pandas as pd
import numpy as np
2.导入数据
# 数据加载
data = pd.read_csv('team_cluster_data.csv', encoding='gbk')
train_x = data[["2019国际排名","2018世界杯排名","2015亚洲杯排名"]]
数据样例:
3.聚类算法
kmeans = KMeans(n_clusters=3)
# 规范化到 [0,1] 空间
min_max_scaler=preprocessing.MinMaxScaler()
train_x=min_max_scaler.fit_transform(train_x)predict_y = kmeans.fit_predict(train_x)
# 合并聚类结果,插入到原数据中
result = pd.concat((data,pd.DataFrame(predict_y)),axis=1)
result.rename({0:u'聚类结果'},axis=1,inplace=True)
print(result)
4.运行结果
国家 2019国际排名 2018世界杯排名 2015亚洲杯排名 聚类结果
0 中国 73 40 7 0
1 日本 60 15 5 2
2 韩国 61 19 2 2
3 伊朗 34 18 6 2
4 沙特 67 26 10 2
5 伊拉克 91 40 4 0
6 卡塔尔 101 40 13 1
7 阿联酋 81 40 6 0
8 乌兹别克斯坦 88 40 8 0
9 泰国 122 40 17 1
10 越南 102 50 17 1
11 阿曼 87 50 12 1
12 朝鲜 110 50 14 1
13 印尼 164 50 17 3
14 澳洲 40 30 1 2
15 叙利亚 76 40 17 1
16 约旦 118 50 9 0
17 科威特 160 50 15 3Process finished with exit code 0
聚类结果数值发现:
(数值2)第一梯队:日本、韩国、 伊朗、沙特、澳洲
(数值0)第二梯队:中国、伊拉克、阿联酋、乌兹别克斯坦、约旦
(数值1)第三梯队:卡塔尔、泰国、越南、阿曼、朝鲜
(数值3)第四梯队:印尼、科威特
国足属于第二梯队,当然这个数值分类还是随着国际比赛是时刻变化的。
有技术交流可以私信哦。