又开始做实例了~在本次数据集中,包含了2017年所有活跃的足球运动员的个人数据,包括身高体重等基本数据,以及力量、速度、技巧等多个指标。C罗、梅西、内马尔,到底谁比较厉害呢?答案我们可以从数据中获得。(有意思~)
本次数据集的来源是kesci,提供者是Ustinian,想自己动手试试的同学可以去了解一下~
下面是和鲸社区中,对数据集的描述,主要包括了:数据集的主要内容、以及数据内的各个标签的中文注释。
从运行结果可以看到,出现数据缺失的特征总共有六列,而主要缺失的有两列,分别是:National_Position 国家队位置、National_Kit 国家队号码,出现缺失的原因,有可能是部分球员并没有在国家队里服役,因此也就没有相应的号码和位置。同时,由于‘Club 所在俱乐部’、‘Club_Position 所在俱乐部位置’、‘Club_Kit 俱乐部号码’、 ‘Club_Joining 加入俱乐部时间 ’、‘Contract_Expiry 合同到期时间’这5项指标也不在我们的研究范围之内。
因此,针对以上缺失值,我们不做处理。(对我们接下去的数据分析和可视化没有影响的~)
可以看到,我们的数据是带有‘kg’、‘cm’等单位的,因此我们先对这些单位进行移除,同时修改数据类型,以方便后面的操作。
上述操作的主要目的是想让大家暖一下手,下面才是我们对这个球员数据集分析的真正开始。
作为非专业球员(嘻嘻,球迷or足球爱好者),我们当然还是更想看看能不能从数据反映出球员的个人实力。所以下面我们就要进行深入分析。
在我们的球员数据集中,总共有这么两项数据:Rating 评分、Skill_Moves 技术等级,这两项数据就是我们的主要研究目标。我们将围绕这两项数据,建立研究需求。
可以看到,分值(Rating)这一目标值是连续型的,总共有49个不同值。
可以看到,技术等级(Skill_Moves)更像是分类型的,总共有1-5五个等级。
总所周知,足球场上总共有11个球员,大致可以分为两类,分别是:1个守门员,及非守门员(前锋、中场、后卫),守门员的能力与非守门员的能力肯定是有区别的,因此我们在通过球员数据鉴定球员能力时,不能按照同一套标准。
对于守门员,我们更多的考究他的护框能力,与其他非守门员球员是截然不同的。
从数值上,可以明显看出区别。(忘记各个特征中文名的同学可以去上面看哦,我就不改数据表了)
在数据集中,GK是表示守门员(门将)的意思,同时,主要有5个特征用于衡量守门员的能力,分别是:
因此,我们可以将这几列特征提取出来,连同球员得分及技能等级,绘制成一个新数据表——门将数据表。
可以看到,在技术等级为1的球员有2002个,等级为2的只有1个,差距太大,这里其实L考虑过做数据平衡化,但是效果不是很好。
综合考虑后,决定在考量守门员的能力时,仅考虑分值(Rating)这一项数据,不考虑技术等级(Skill_Moves)。
(由于在数据表中,球员的单项特征的得分越高,证明这名球员的这项能力更突出,也就是说,这里的特征均属于数值类型,而不是类别型特征。因此,在这里我们不需要进行one-hot独热编码。)
下面,我们将结合这五项特征,使用机器学习的方法技巧进行分析。(这里总共分为几个部分,由于篇幅原因,可能会将所有内容分为几篇文章。)
首先,我们使用决策树中的DecisionTreeRegressor(回归树)进行分析。
注意~在这里我们指定了拆分系数为0.3,也是说将7/10的数据作为训练集,剩下3/10的数据作为测试集。
查看一下在测试集上的准确度(将经过训练集训练后的模型,应用到测试集里,并查看拟合的得分情况)
可以看到,拟合度是比较高的,也就是说这里我们可以借助回归树对球员评分进行预测。
2、同时,我们也可以画出决策树.(但是如果考虑实际问题的话,这里其实并不建议这么做)
以上便是数据分析实例——足球运动员数据集(1)的内容,感谢大家的细心阅读,同时欢迎感兴趣的小伙伴一起讨论、学习,想要了解更多内容的可以看我的其他文章,同时可以持续关注我的动态~