当前位置:首页 > 足球资讯 > 正文内容

数据分析实例——足球运动员数据集(1)

杏彩体育2年前 (2023-03-01)足球资讯161

又开始做实例了~在本次数据集中,包含了2017年所有活跃的足球运动员的个人数据,包括身高体重等基本数据,以及力量、速度、技巧等多个指标。C罗、梅西、内马尔,到底谁比较厉害呢?答案我们可以从数据中获得。(有意思~)

数据来源:

本次数据集的来源是kesci,提供者是Ustinian,想自己动手试试的同学可以去了解一下~

下面开始我们的实例学习之路~

一、了解数据集

下面是和鲸社区中,对数据集的描述,主要包括了:数据集的主要内容、以及数据内的各个标签的中文注释。

(1)数据内容:

2017年所有活跃的足球运动员。

(2)数据说明(标签名):

Name 姓名

Nationality 国籍

National_Position 国家队位置

National_Kit 国家队号码

Club 所在俱乐部

Club_Position 所在俱乐部位置

Club_Kit 俱乐部号码

Club_Joining 加入俱乐部时间

Contract_Expiry 合同到期时间

Rating 评分

Height 身高

Weight 体重

Preffered_Foot 擅长左(右)脚

Birth_Date 出生日期

Age 年龄

Preffered_Position 擅长位置

Work_Rate 工作效率

Weak_foot 非惯用脚使用频率

Skill_Moves 技术等级

Ball_Control 控球技术

Dribbling 盘球(带球)能力

Marking 盯人能力

Sliding_Tackle 铲球

Standing_Tackle 逼抢能力

Aggression 攻击能力

Reactions 反击

Attacking_Position 攻击性跑位

Interceptions 抢断

Vision 视野

Composure 镇静

Crossing 下底传中

Short_Pass 短传

Long_Pass 长传

Acceleration 加速度

Speed 速度

Stamina 体力

Strength 强壮

Balance 平衡

Agility 敏捷度

Jumping 跳跃

Heading 投球

Shot_Power 射门力量

Finishing 射门

Long_Shots 远射

Curve 弧线

Freekick_Accuracy 任意球精准度

Penalties 点球

Volleys 凌空能力

GK_Positioning 门将位置感

GK_Diving 扑救能力

GK_Kicking 门将踢球能力

GK_Handling 扑球脱手几率

GK_Reflexes 门将反应度

(3)导入数据:

import numpy as np import pandas as pd df = pd.read_csv(rC:\Users\Administrator\Desktop\zuqiu8543\football.csv)

(4)查看数据基本信息:

df.head()
df.shape

查看数据缺失情况:

df.isnull().sum()

从运行结果可以看到,出现数据缺失的特征总共有六列,而主要缺失的有两列,分别是:National_Position 国家队位置、National_Kit 国家队号码,出现缺失的原因,有可能是部分球员并没有在国家队里服役,因此也就没有相应的号码和位置。同时,由于‘Club 所在俱乐部’、‘Club_Position 所在俱乐部位置’、 ‘Club_Kit 俱乐部号码’、 ‘Club_Joining 加入俱乐部时间 ’、‘Contract_Expiry 合同到期时间’这5项指标也不在我们的研究范围之内。

因此,针对以上缺失值,我们不做处理。(对我们接下去的数据分析和可视化没有影响的~)

二、进行简单数据分析

(1)查看球员的身高、体重的具体信息

首先我们使用head( )查看一下:

df[[Weight,Height]].head()

可以看到,我们的数据是带有‘kg’、‘cm’等单位的,因此我们先对这些单位进行移除,同时修改数据类型,以方便后面的操作。

(忘记应该怎么做的同学可以看这里)

df[Height]=df[Height].apply(lambda x:x[0:-3]) df[Weight]=df[Weight].apply(lambda x:x[0:-3]) df[[Height,Weight]]=df[[Height,Weight]].astype(int)

我们可以查看修改后的数据:

df[[Weight,Height]].head()

使用agg()查看所有球员身高、体重的均值和最值:

df[[Height,Weight]].agg([mean,max,min])

可以看到,数据集中的球员平均身高达到了181cm、平均体重75kg。

上述操作的主要目的是想让大家暖一下手,下面才是我们对这个球员数据集分析的真正开始。

作为非专业球员(嘻嘻,球迷or足球爱好者),我们当然还是更想看看能不能从数据反映出球员的个人实力。所以下面我们就要进行深入分析。

三、通过球员数据,鉴定球员能力

在我们的球员数据集中,总共有这么两项数据:Rating 评分、Skill_Moves 技术等级,这两项数据就是我们的主要研究目标。我们将围绕这两项数据,建立研究需求。

研究需求:

分值(Rating)高低的评分依据是什么?如何构建评分依据?

技术等级(Skill_Moves)的评价标准是什么?如何构建评价标准?

对研究需求的初步解读:

首先我们还是先对我们的目标列加深认知:

(1)分值(Rating):

df[Rating].unique()
df[Rating].nunique()

可以看到,分值(Rating)这一目标值是连续型的,总共有49个不同值。

(2)技术等级(Skill_Moves):

df[Skill_Moves].unique()
df[Skill_Moves].nunique()

可以看到,技术等级(Skill_Moves)更像是分类型的,总共有1-5五个等级。

进行球员分析前的须知:

总所周知,足球场上总共有11个球员,大致可以分为两类,分别是:1个守门员,及非守门员(前锋、中场、后卫),守门员的能力与非守门员的能力肯定是有区别的,因此我们在通过球员数据鉴定球员能力时,不能按照同一套标准。

对于守门员,我们更多的考究他的护框能力,与其他非守门员球员是截然不同的。

我们可以通过查看数据,进一步观察守门员和非守门员能力的差异:

我们提取出7列特征:

Name 姓名Preffered_Position 擅长位置Speed 速度Finishing 射门Freekick_Accuracy 任意球精准度Shot_Power 射门力量GK_Diving 扑救能力GK_Reflexes 门将反应度

接着,我们查看前五名球员的这些数值差距:

df[[Name,Preffered_Position,Speed,Finishing,Shot_Power,GK_Diving,GK_Reflexes]].head()

在上面五位球员中,前四位是非守门员,第五位是守门员。

从数值上,可以明显看出区别。(忘记各个特征中文名的同学可以去上面看哦,我就不改数据表了)

下面开始正式分析球员能力值的评分标准~

1、守门员的评分标准

在数据集中,GK是表示守门员(门将)的意思,同时,主要有5个特征用于衡量守门员的能力,分别是:

GK_Positioning 门将位置感GK_Diving 扑救能力GK_Kicking 门将踢球能力GK_Handling 扑球脱手几率GK_Reflexes 门将反应度

因此,我们可以将这几列特征提取出来,连同球员得分及技能等级,绘制成一个新数据表——门将数据表。

df_GK = df[[Name,Rating,Skill_Moves,GK_Positioning,GK_Diving ,GK_Kicking,GK_Handling,GK_Reflexes]][df[Preffered_Position]==GK]

查看表格情况:

df_GK.head()

查看一下技能等级(Skill_Moves)的分级情况:

df_GK[Skill_Moves].unique()

可以看到,在所有守门员中,技术等级只有1和2两个等级。

我们进一步查看等级的个数:

df_GK[Skill_Moves].value_counts()

可以看到,在技术等级为1的球员有2002个,等级为2的只有1个,差距太大,这里其实L考虑过做数据平衡化,但是效果不是很好。

综合考虑后,决定在考量守门员的能力时,仅考虑分值(Rating)这一项数据,不考虑技术等级(Skill_Moves)。

(由于在数据表中,球员的单项特征的得分越高,证明这名球员的这项能力更突出,也就是说,这里的特征均属于数值类型,而不是类别型特征。因此,在这里我们不需要进行one-hot独热编码。)

可以看到,特征列都是数值型的。

下面,我们将结合这五项特征,使用机器学习的方法技巧进行分析。(这里总共分为几个部分,由于篇幅原因,可能会将所有内容分为几篇文章。)

一、回归树

首先,我们使用决策树中的DecisionTreeRegressor(回归树)进行分析。

1、将数据集分割成训练集和测试集

导入做决策树相应需要的包:

from sklearn import tree from sklearn.model_selection import train_test_split

首先,将原数据集按特征和目标进行分割:

df_x=df_GK.drop(labels=[Name,Rating,Skill_Moves],axis=1) df_y1=df_GK.loc[:,Rating]

然后,使用train_test_split将数据分成训练集和测试集。

注意~在这里我们指定了拆分系数为0.3,也是说将7/10的数据作为训练集,剩下3/10的数据作为测试集。

#指定评分为目标时: X_train, X_test, Y_train, Y_test = train_test_split(df_x,df_y,test_size=0.3)

下面开始建模,并进行数据训练:

reg = tree.DecisionTreeRegressor(random_state=0) reg = reg.fit(X_train, Y_train)

查看一下在测试集上的准确度(将经过训练集训练后的模型,应用到测试集里,并查看拟合的得分情况)

score = reg.score(X_test, Y_test) score

可以看到,拟合度是比较高的,也就是说这里我们可以借助回归树对球员评分进行预测。

2、同时,我们也可以画出决策树.(但是如果考虑实际问题的话,这里其实并不建议这么做)

import graphviz reg = tree.DecisionTreeRegressor(random_state=0) reg = reg.fit(X_train, Y_train) dot_data = tree.export_graphviz(reg ,out_file = None ,class_names=["球员评分"] ,filled=True ,rounded=True ) graph = graphviz.Source(dot_data) graph

除此之外,我们也可以利用随机森林回归、线性回归、逻辑回归包括支持向量机等方法,进行模型拟合及预测,当然了,使用每种方法的步骤与注意点均有些许不同,这些我也将会在下次为大家说明。

以上便是<数据分析实例——足球运动员数据集(1)>的内容,感谢大家的细心阅读,同时欢迎感兴趣的小伙伴一起讨论、学习,想要了解更多内容的可以看我的其他文章,同时可以持续关注我的动态~

扫描二维码推送至手机访问。

版权声明:本文由财神资讯-领先的体育资讯互动媒体转载发布,如需删除请联系。

本文链接:http://www.tengj.cn/?id=64400

分享给朋友:

“数据分析实例——足球运动员数据集(1)” 的相关文章

乌拉圭足球史上的十大球员

乌拉圭足球史上的十大球员

在大家的惯有印象中,乌拉圭是巴西、阿根廷之后的南美劲旅,不过从成绩的角度来说,乌拉圭与巴西、阿根廷绝对是处于同一档的足球强国。2次奥运会足球冠军、2次世界杯足球赛冠军、15次美洲杯冠军,在现代足球史上,乌拉圭国家队是获得洲际以上级别冠军最多的一支国家足球队。在赢得过世界杯冠军的国家里面,乌...

2022世界杯排名表,2022世界足球排名?

2022世界杯排名表,2022世界足球排名?

       长按识别二维码或者直接搜索sd19499,加我好友,备注世界杯,我就知道你是干嘛的了,要不我是不会通过的 2022年9月29日,世界知识产权组织(WIPO)在日内瓦发布了2022年全球创新指数(GII)。中国在世界132个经济体...

欧洲杯16强世界排名更新,到底有踢假球的吗?南美足球落后欧洲了

欧洲杯16强世界排名更新,到底有踢假球的吗?南美足球落后欧洲了

  欧洲杯16强已经确定了对阵,而且世界排名也更新了。   上半区:比利时(第1) vs 葡萄牙(第5);意大利(第7)vs 奥地利(第23);   法国(第2) vs 瑞士(第13);克罗地亚(第14) vs 西班牙(第6)      下半区:瑞典(第18...

国际足球场与普通足球场的区别及标准尺寸规格!

国际足球场与普通足球场的区别及标准尺寸规格!

  足球场整体是矩形的。长的两边是称为边线。另外两边侧面被称为球门线。两个球门线必须50至100码,并具有相同的长度。两个边线也必须具有相同的长度,以及在100至130码的长度之间。所有线条必须是等宽的,不超过12厘米。   国际足球场的标准规格尺寸是由国际足协制定。对于...

10个国际足联标准球场建成试运营,就在珠海这里……

10个国际足联标准球场建成试运营,就在珠海这里……

在金湾区平沙镇南新大道旁,一片片开阔平坦的绿茵相连,引人注目。这里就是珠海市索卡体育文旅综合产业基地一期工程(索卡体育训练基地),近日,该项目首期建设的13个足球场中,目前已有10个建成投入试运营。 首期13个足球场均为11人制标准足球场。 该基地的足球训练场按照国际足联A...

11.27 周日足球竞彩实单推荐:世界杯精选冷门2串 含胜平负 比分预测

11.27 周日足球竞彩实单推荐:世界杯精选冷门2串 含胜平负 比分预测

打开网易新闻 查看更多视频 11.27 周日足球竞彩实单推荐:世界杯精选冷门2串 含胜平负 比分预测 大家好,我是你们的老朋友老魏,...