写点什么

在 FIFA 20 将技能相似球员进行分组(2):层次聚类

  • 2020-09-22
  • 本文字数:2195 字

    阅读完需:约 7 分钟

在 FIFA 20 将技能相似球员进行分组(2):层次聚类

理解层次聚类

  • 与 K-均值聚类算法(K-means)不同,不需要指定聚类的数量。

  • 结果汇总在树状图,树状图可以方便地解释数据和选择任何数量的聚类。

基本思路

  • 专注 :自下而上(又称凝聚聚类(Agglomerative clustering))

  • 从单个观察开始(又称 叶子 )开始,作为聚类。

  • 通过将叶子合并成 树枝 向上移动。

  • 将树枝与其他叶子或树枝合并。

  • 最终,当所有的东西都合并到一个聚类时,到达顶端。



树状图示例。

解释树状图

  • 在适当的高度上进行切割,以获得所需聚类的 #。

  • 垂直轴:相异度度量(或距离)——两个聚类合并的高度。

  • 高度表示聚类的相似性。

  • 较低的高度更相似

  • 水平轴并不表示相似性。

  • 交换左右分支并不影响树状图的意义。

它如何衡量聚类之间的差异?

  1. 基于度量(最常见的是曼哈顿距离(Manhattan distance)或欧几里得距离(Euclidean distance,亦称欧氏距离))。

  2. 最长距离法(Complete linkage)(即最远邻法(furthest-neighbor))

  3. 最短距离法(Single linkage)(即最近邻法(nearest-neighbor))

  4. 平均距离法(Average linkage)

  5. 质心距离法(Centroid linkage)

  6. 2, 基于相关性的距离

  7. 查找观测值之间的相关性。

层次聚类的缺点

  1. 计算成本高——不适用于大数据集。

  2. ,而表示 K-均值。

  3. 对噪声和离群值敏感。

使用层次聚类对 FIFA20 的球员进行分组

数据清理/预处理(第一部分中的代码)

import pandas as pdimport numpy as npdf = pd.read_csv("/content/players_20.csv")df = df[['short_name','age', 'height_cm', 'weight_kg', 'overall', 'potential','value_eur', 'wage_eur', 'international_reputation', 'weak_foot','skill_moves', 'release_clause_eur', 'team_jersey_number','contract_valid_until', 'nation_jersey_number', 'pace', 'shooting','passing', 'dribbling', 'defending', 'physic', 'gk_diving','gk_handling', 'gk_kicking', 'gk_reflexes', 'gk_speed','gk_positioning', 'attacking_crossing', 'attacking_finishing','attacking_heading_accuracy', 'attacking_short_passing','attacking_volleys', 'skill_dribbling', 'skill_curve','skill_fk_accuracy', 'skill_long_passing', 'skill_ball_control','movement_acceleration', 'movement_sprint_speed', 'movement_agility','movement_reactions', 'movement_balance', 'power_shot_power','power_jumping', 'power_stamina', 'power_strength', 'power_long_shots','mentality_aggression', 'mentality_interceptions','mentality_positioning', 'mentality_vision', 'mentality_penalties','mentality_composure', 'defending_marking', 'defending_standing_tackle','defending_sliding_tackle','goalkeeping_diving','goalkeeping_handling', 'goalkeeping_kicking','goalkeeping_positioning', 'goalkeeping_reflexes']]df = df[df.overall > 86] # extracting players with overall above 86df = df.fillna(df.mean())names = df.short_name.tolist() # saving names for laterdf = df.drop(['short_name'], axis = 1) # drop the short_name columndf.head()
复制代码

标准化数据

from sklearn import preprocessingx = df.values # numpy arrayscaler = preprocessing.MinMaxScaler()x_scaled = scaler.fit_transform(x)X_norm = pd.DataFrame(x_scaled)
复制代码

基于平均距离法的层次聚类

import matplotlib.pyplot as pltimport scipy.cluster.hierarchy as sch# plot dendrogram using average linkageplt.figure(figsize=(10,14))plt.title('Hierarchical Clustering Dendrogram with Average Linkage')dendrogram = sch.dendrogram(sch.linkage(X_norm, method="average"), labels= names, leaf_font_size = 13, orientation='right')
复制代码



  • 分成两组:守门员和其他人

最短距离法

# plot dendrogram using single linkageplt.figure(figsize=(10,14))plt.title('Hierarchical Clustering Dendrogram with Single Linkage')dendrogram = sch.dendrogram(sch.linkage(X_norm, method="single"), labels= names, leaf_font_size = 13, orientation='right')
复制代码



分为守门员和其他人

质心距离法

# plot dendrogram using centroid linkageplt.figure(figsize=(10,14))plt.title('Hierarchical Clustering Dendrogram with Centroid Linkage')dendrogram = sch.dendrogram(sch.linkage(X_norm, method="centroid"), labels= names, leaf_font_size = 13, orientation='right')
复制代码



  • 再次分成守门员和其他人。

最长距离法

# plot dendrogram using complete linkageplt.figure(figsize=(10,14))plt.title('Hierarchical Clustering Dendrogram with Complete Linkage')dendrogram = sch.dendrogram(sch.linkage(X_norm, method="complete"), labels= names, leaf_font_size = 13, orientation='right')
复制代码


结论

最长距离法似乎是将球员进行最准确地分组的方法!


感谢阅读本文,希望对你有所启迪。


本文的 GitHub 仓库:https://github.com/importdata/Clustering-FIFA-20-Players


作者介绍


Jaemin Lee,Jaemin Lee,专攻数据分析与数据科学,数据科学应届毕业生。


原文链接


https://towardsdatascience.com/grouping-soccer-players-with-similar-skillsets-in-fifa-20-part-2-hierarchical-clustering-839705f6d37d?source=---------0-----------------------


2020-09-22 10:031417

评论

发布
暂无评论
发现更多内容

霍尼韦尔公布2025年第三季度业绩并上调全年指导范围

财见

告别 “盲买”!京东 AI 试穿 Oxygen Tryon:让服饰购物从“想象”到“所见即所得”

京东零售技术

端到端短视频多目标排序机制框架EMER详解

快手技术

推荐算法 大模型 快手 生成式AI

为什么别人用 DevPod 秒启 DeepSeek-OCR,你还在装环境?

阿里巴巴云原生

阿里云 AI 云原生 DeepSeek

CDN动态加速路径计算集群间数据同步优化方法

天翼云开发者社区

CDN 全站加速

跨境必备:海外网红营销服务公司TOP5

Wolink

跨境电商 出海服务商 海外社媒营销 海外营销推广 品牌出海

如何一句话证明你懂项目管理或当过项目经理?

禅道项目管理

项目管理 禅道 软件项目管理

中国企业如何在全球不确定下进行出海战略决策?

Wolink

跨境电商 出海 出海企业 品牌出海

【淘宝店铺商品API】一键获取全店商品数据 | 分页查询+实时更新

Datafox(数据狐)

淘宝整店商品数据接口 淘宝API 淘宝店铺所有商品API 天猫店铺商品API

海外达人营销平台哪家强?五大主流平台深度对比与选型建议

Wolink

海外社媒营销 海外营销推广 品牌出海 达人营销

InterDigital收购AI初创公司Deep Render

财见

网易工程机械论文入选IROS 2025,中国团队携工程机械机器人技术亮相全球顶会

网易伏羲

网易伏羲 游戏AI 具身智能 无人挖掘机 #网易灵动

算清这笔账,绿电直连成本立降!详解过网费收取规则

西格电力

数字电网 新能源产业 电力交易 绿电直连 可再生能源发电

过程管理系统

深圳亥时科技

告别资源浪费!超融合架构下,如何智能调度让每台虚拟机都“跑得更快”?

智驱前线

Android开发中常用高效数据结构

秃头小帅oi

从ROI到战略收益:天润融通告诉你客户联络AI化带来的真实价值

天润融通

微擎:数字化转型的普惠引擎,破解商户经营三大核心命题

微擎应用市场

我们与恶的距离,只隔着一个谄媚的AI

脑极体

AI

双举并进,TÜV南德获授"中德智能制造技术创新中心"称号,工业安全AI白皮书同期发布

财见

2026成都电子展|中国西部(成都)电子信息博览会

AIOTE智博会

电子展 电子信息展 电博会 成都电子展 西部电子展

AI驱动的测试:用Dify工作流实现智能缺陷分析与分类

测试人

软件测试

CNCC2025回顾|网易伏羲主题分论坛圆满落幕,产学研共探智能体技术跃迁路径

网易伏羲

网易伏羲 游戏AI 具身智能 群体智能 网易雷火

NineData社区版 V4.6.0 正式发布!SQL 窗口新增4个数据源,新增支持OceanBase等多条数据复制和对比链路

NineData

数据库管理工具 数据迁移工具 NineData 社区版 V4.6.0 数据库 DevOps

天润融通重磅白皮书发布,找到属于你企业的AI生产力飞轮!

天润融通

软通动力2025年三季报 | 全栈智能激活软硬协同,营收净利双增彰显发展质效

财见

【隐语SecretFlow】由蚂蚁集团牵头制定的“隐私保护计算安全分级”IEEE国际标准已正式发布!

隐语SecretFlow

标准化 隐私保护 IEEE

万界星空产线MES实施案例:精益数字化车间的构建与实践

万界星空科技

mes 万界星空科技mes 数字化车间 制造业转型 产线mes

从曝光到销量:海外达人营销如何助力品牌实现长期增长?

Wolink

跨境电商 出海服务商 海外社媒营销 海外营销推广 达人营销

SD-WAN如何帮助公司进行网络升级?

光联世纪

互联网 科普 交流 SD-WAN组网

在 FIFA 20 将技能相似球员进行分组(2):层次聚类_AI&大模型_Jaemin Lee_InfoQ精选文章