加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

以FIFA球员数据集为例,详解3大酷炫可视化技巧

发布时间:2019-05-21 06:11:29 所属栏目:教程 来源:读芯术
导读:可视化令数据一目了然。然而,成功的数据可视化往往很难实现。此外,向更多受众呈现这些可视化的数据,也需要耗费更多时间和精力。 大家都知道如何制作条形图、散点图和直方图,但却不注重美化它们。这在无形中会损害我们在同行和上级心中的可靠性。 此外

只保留最好的球队(保留波尔图足球俱乐部只是为了让样本更加多样化)和最常见的国籍。

以FIFA球员数据集为例,详解3大酷炫可视化技巧

俱乐部偏好在很大程度上反映了“国籍”:了解前者有助于预测后者。

由图可知,英国球员更可能效力于切尔西队或曼联队,而不是在巴塞罗那队、拜仁慕尼黑队或波尔图队。

同理,克莱姆V系数也也捕获到了同样的信息。

如果所有俱乐部拥有的球员的国籍比例相同,那么克莱姆V系数则为0。

如果每个俱乐部偏好单一国籍的球员,则克莱姆系数V==1,例如,所有的英国球员在曼联队效力,所有的德国球员在拜仁慕尼黑队效力等等。

在所有其他情况下,范围则为[0,1]。

3. 数值变量和分类变量

对连续分类案例使用相关比率。

在不涉及太多数学的情况下,该变量用于离散程度的衡量。

如果给定一个数字,就能找出它的类别吗?

例如,假设数据集中有“SprintSpeed”和“Position”两列分类,那么:

  • 守门员:58(De Gea)、52(T. Courtois)、58(M. Neuer)、 43(G. Buffon)
  • 中后卫:68(D. Godin)、59(V. Kompany)、73(S. Umtiti)、 75(M. Benatia)
  • 前锋:91(C.Ronaldo)、94(G. Bale)、80(S.Aguero)、 76(R. Lewandowski)

由上可知,这些数字很好地预测了他们所处的位置,因此相关性很高。

如果某球员冲刺速度超过85,那么该球员肯定是前锋。

这个比率也在[0,1]之间。

执行此操作的代码取自dython包,代码不会很多,最终结果如下:

  1. player_dfplayer_df = player_df.fillna(0) 
  2. results = associations(player_df,nominal_columns=catcols,return_results=True) 

以FIFA球员数据集为例,详解3大酷炫可视化技巧

分类vs.分类、分类vs.数值、数值vs.数值,这些使图表更为有趣。

很美,不是吗?

只要看看数据,就能对足球有如此多的了解,例如:

  • 球员的位置与运球能力高度相关。总不能让梅西踢后卫吧!
  • 值与传球和控球的相关性比运球更高。规则是永远传球,正如内马尔的传球。
  • “俱乐部”和“收入”有很高的相关性并且可预测。
  • “体型”与“踢球偏好的脚”高度相关。这是否意味着如果某球员是瘦子,就很可能喜欢用左脚踢球?这可能没啥实际意义,需要进一步调查。

此外,通过这个简单的图表,就能找到上述这么多信息,这在没有分类变量的典型相关图中是见不到的。

大家可深入研究这张图表,得到更多有意义的结果,但关键是图表能让大家在现实生活中更容易找到某种规律。

散点图矩阵

虽然前文谈到了很多相关性,但它是一个变幻无常的指标,为了让大家理解,我们来看一个例子。

“Anscombe四重奏”由四个相关性几乎近似于1的数据集组成,但具有非常不同的数据分布,并且在绘制时呈现出非常不同的效果。

以FIFA球员数据集为例,详解3大酷炫可视化技巧

Anscombe四重奏:相关性变化无常

因此,有时绘制相关数据变得至关重要,并且需要单独查看分布。

现在数据集中有很多列,把它们全都绘制成图形会很费力。

其实只需几行代码就可以解决。

  1. filtered_player_df = player_df[(player_df['Club'].isin(['FC Barcelona', 'Paris Saint-Germain', 
  2.        'Manchester United', 'Manchester City', 'Chelsea', 'Real Madrid','FC Porto','FC Bayern München'])) &  
  3.                       (player_df['Nationality'].isin(['England', 'Brazil', 'Argentina', 
  4.        'Brazil', 'Italy','Spain','Germany']))  
  5.                      ] 
  6. # Single line to create pairplot 
  7. g = sns.pairplot(filtered_player_df[['Value','SprintSpeed','Potential','Wage']]) 

以FIFA球员数据集为例,详解3大酷炫可视化技巧

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读