前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >探索大神科比,30000多次投篮数据,有好玩的发现

探索大神科比,30000多次投篮数据,有好玩的发现

作者头像
数据森麟
发布2019-09-27 18:30:44
1.4K0
发布2019-09-27 18:30:44
举报
文章被收录于专栏:数据森麟数据森麟
要点:
  • 数据获取
  • 数据的清洗
  • 数据的多维度可视化

01

数据来源

玩数据分析的同学一定都知道kaggle,里面有大量好玩的数据集,这次我们下载了科比近20年职业生涯中所尝试的每个投篮命中的位置和情况,由于是篮球领域的数据,可能有一些小伙伴看不懂,不过没关系,后面我都会进行简短的说明的。

链接:https://www.kaggle.com/c/kobe-bryant-shot-selection/data

The field names are self explanatory and contain the following attributes:

  • action_type 进攻方式(更具体)
  • combined_shot_type 进攻方式
  • game_event_id 这个不清楚
  • game_id 比赛ID
  • lat 投篮点
  • loc_x 投篮点
  • loc_y 投篮点
  • lon 投篮点
  • minutes_remaining 单节剩余时间(分钟)
  • period 表示第几节
  • playoffs 是否是季后赛
  • season 赛季
  • seconds_remaining 剩余时间(秒)
  • shot_distance 投篮距离
  • shot_made_flag 是否进球
  • shot_type 两分球或三分球
  • shot_zone_area 投篮区域
  • shot_zone_basic 投篮区域(更具体)
  • shot_zone_range 投篮范围
  • team_id 球队ID
  • team_name 球队名称
  • game_date 比赛日期
  • matchup 比赛双方
  • opponent 对手
  • shot_id 投篮ID

02

数据的读取和查看

1).读入数据集:

2).看一下数据集基本情况:一共有25个维度

3).看一下数据集的大小:一共投了30697次

可以看到,科比职业生涯出手投篮了三万多次,确实是厉害!大致先了解一下这份数据,主要是收集了科比每一次进攻的位置,投篮方式和得分,这三个维度也是我们重点关注的,其他的其实影响不是太大。

03

数据清洗和探索

1).数据的清洗

因为这是kaggle上的一个比赛数据,会用于预测,所以在“shot_made_flag”这一列上会有空值(即预测科比这一次投篮是否能投进),后面的部分分析会先剔除掉这些空值的数据,所以科密们,如果见到后面一些分析不太合理的话,要考虑到这一点哦!

#剔除未知命中结果的数据

known_data = data[data['shot_made_flag'].notnull()]

known_data.sample(3)

2).数据的思考

那接下来就慢慢来分析科比的投篮吧。站在一个球迷的位置,我会先关注的是科比的投篮点,有哪一些进攻的方式,哪一种又是偏多呢?

在数据分析前,我先来猜测下,按照我的球迷经验,科比常用的应该是跳投多一些,毕竟江湖上有一句话说,“我科后仰美如画”。科比的投篮姿势也是教科书版的存在,所以会有很多人去模仿他的动作。

3).画出科比的投篮图

  • 默认的plt画图太丑,我用sns来设置画图的颜色
  • plt来设置中文字体,设置坐标系显示负数
  • 用scatter来画散点图
  • 设置X,Y轴和Title

可视化看一下:

4).常用的进攻方式

  • 取数据集中的'combined_shot_type'统计科比投篮的方式
  • 用直方图来显示,构造x和y的参数.(x为1到6的序列,y为每一种投篮方式的统计数)
  • 设置坐标标签和刻度范围

果然,跳投是最多的,最少的是擦板(嗯,这个让我想起了另外一位巨星——邓肯,他的擦板肯定不少!)这里用到的是“combined_shot_type”这一列,然后我把结果转为中文了,看起来顺眼一点。

4).计算命中率

  • 过滤数据集,获得投篮命中的次数hits_df
  • 计算投篮命中率
  • 设置坐标参数和lable

可以看到,扣篮的命中率最高,然后是擦板,带球上篮,勾手,跳投,最后居然是补篮命中率最低(有点难以置信,有可能是数据的缺失的原因,我其实更偏向跳投才是最低的).

5).看看不同区域的出手情况

分析完科比的进攻方式,再来看看他喜欢在哪些地方投篮,终结的效果又是如何。同样,数据集里面对投篮区域的描述也有两列,这里我选取描述更具体的“shot_zone_basic”一列来分析。

因为y轴的标签名称太长,所以我们把画布右移0.18

可以看到,科比更多的进攻范围是在中距离,中投多一点。

6).最后一分钟的数据

#选取最后一分钟的数据

last_min_df = known_data[known_data['minutes_remaining']==0]

#平均进攻距离

avg_dis = last_min_df['shot_distance'].mean()

#进攻方式绘制

可以看到,还是中距离的跳投居多,还有一些距离看起来很远的,一般都是时间快到点了,然后乱扔出去的,最为球队领袖,还是有很多出手权的。


如果大家周围有对数据分析&数据挖掘感兴趣的朋友,欢迎在朋友圈分享&转发一下,让更多的朋友加入我们。有好的文章也可以联系我与大家分享,需要获取代码转载本公众号文章,可以直接在公众号或者文章下方留言

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据森麟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档