专栏首页数据森麟探索大神科比,30000多次投篮数据,有好玩的发现

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

要点:
  • 数据获取
  • 数据的清洗
  • 数据的多维度可视化

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()

#进攻方式绘制

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


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

本文分享自微信公众号 - 数据森麟(shujusenlin)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 中秋佳节,用 AI 为家人写一首诗(文末送中秋福利)

    面对中秋花好月圆的良辰美景,古人能够吟出「海上生明月,天涯共此时」的绝美诗句,而现在大多数人却只能无奈地,将无限感慨化为一句「啊,月亮好圆。」

    数据森麟
  • 会打麻将的人工智能来了

    场景描述:微软发布了 一款打麻将的 AI 模型,在专业的竞技平台上成功达到最高段位。在这项风靡全国甚至全球的娱乐活动上, AI 雀神的诞生究竟克服了哪些困难,这...

    数据森麟
  • 精选|2018年7月R新包推荐

    7月份,大约有251个R新包收录于CRAN。除7月份新包数量远超6月份之外,R新包的质量和多样性上也有明显的进步。比如tropicalSparse,抽象数学研究...

    数据森麟
  • Retrofit解析8之核心解析——ServiceMethod及注解1

    上篇文章已经介绍了Retrofit里面的大多数类,今天就重点介绍ServiceMethod,本片文章主要内容如下:

    隔壁老李头
  • 盘一盘 Python 系列特别篇 - Jupyter Notebook

    JuPyteR是三大编程语言Julia、Python 和 R 的缩写,即可以在 Jupyter NoteBook (JNB) 里面编写这三种语言,除此之外,JN...

    石晓文
  • 物联网产业进展

          2009年温家宝总理在江苏无锡调研时,强调了发展“物联网”的重要意义,并提出了要把无锡建设称为“感知中国”的中心。2010年1月14日,接到消息,有...

    ShiJiong
  • Java程序员一年一次的行业盛事:GIAC 2017全球互联网架构大会

    2月22至23日,GIAC全球互联网大会将在上海举行。GIAC 全球互联网架构大会是高可用架构技术社区推广的面向架构师、技术负责人及高端技术从业人员的技术架构大...

    Java架构
  • 深入探索边缘计算:物联网和5G时代的技术趋势

    随着物联网规模的快速增长,集中式的数据存储、处理模式将面临难解的瓶颈和压力,此时在靠近数据产生的网络边缘提供数据处理的能力和服务,将是推动ICT产业发展的下一个...

    CloudBest
  • Cocos2d-Lua 做一个活动转盘

    关于转盘类型的活动我相信大家多多少少都接触到了,很多的抽奖界面都是这类型的,今天这篇小文章就简单的总结一下我们游戏中需要实现这样一个效果的时候我们...

    Mr.RisingSun
  • Silverlight Telerik控件学习:TreeView数据绑定并初始化选中状态、PanelBar的Accordion效果、TabPanel、Frame基本使用

    实际开发中控件的数据源肯定是动态绑定的,不可能在xaml里写死item项。既然要绑定,就先来几个实体类: ? 上面是类图,各类的代码如下:  Business...

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券