虽然科比退役了,但是我却进行了NBA赛况分析
我是一名大三的工科生,主修焊接技术与工程专业。对自己的专业不感兴趣,成绩一般般,比较喜欢尝试新鲜的东西,但很少能在一件事上保持专注。
大二上学期开始深入的学习PPT制作,学习范围逐渐由此延伸至Excel和数据可视化,后来发现了数据分析领域,希望能在未来的三到五年内深入的学习数据分析。
我为什么学习数据分析呢?
第一是兴趣,对数据可视化和对数学的兴趣,我非常喜欢的一位PPTer阿文在离职前也是一名数据分析师,所以我希望不仅能做出漂亮的图表,还要能更高效的挖掘数据和分析数据。
第二是趋势,未来数据分析在各个领域的应用会越来越重要,所以无论以后从事什么职业,现在拿出一段时间去持续学习,我认为是非常值得的。
下面的数据分析案例是我在大数据社群的第4关实践作业,数据来源自kaggle,感兴趣的朋友可自行下载原始数据进行分析:
https://www.kaggle.com/dansbecker/nba-shot-logs
实践之前本以为可以分析出很多东西,然而作为一个小白吭哧吭哧一下午只得到了一点点成果,下面和大家分享。
设立目标
首先来看一下原始数据:
共有21个变量和将近13万个观测,目前的水平还无法对如此庞大的数据进行整体分析,因此我将只选出其中的一部分数据来进行分析。而选择哪些数据又取决于我的分析目标,所以在我拿到原始数据后的第一件事就是确立分析目标:
数据预处理
确立目标之后即可对数据进行预处理:
数据中包含了很多场比赛的信息,这里我只对其中一场进行分析,通过变量GAME_ID选择我想要的场次,再根据我的分析目标选择变量,下面是对我选择的变量的解释说明:
通过以上代码的预处理我们得到了A队和H队的数据框信息:
分析目标1:分析两队球员得分情况
通过以上对数据的进一步处理之后即可得到两队球员在比赛中的表现情况:
下面将两队球员的得分情况绘制成条形图,并分别添加两队球员得分情况的水平线:
可以看到两队各有五名队员得分在平均水平以上,而其中A队(上图)球员的得分基本都在10分以上,B队(下图)却没有人得到10分。
分析目标2:投篮命中次数与距离的关系
这一分析的目的是绘制两队投篮命中次数随投篮点距篮筐距离长短变化的散点图,原始数据中的SHOT_DIST变量中的观测保留了一位小数,这样使命中频率随距离的变化太过分散,而无法进行有效的比较和观察,因此用ceiling函数将SHOT_DIST变量中的观测向前进一位取整。
最后得到下面的数据框:
数据框中的MADE_NUM变量即表示相应距离下的投篮命中次数,最后将SHOT_DIST和MADE_NUM两个变量绘制成散点图并添加趋势线:
比赛的结果是A队赢得比赛,根据散点图我们可以猜测,两队在篮下的的得分情况大致相同,而A队在三分线附近的得分要高于H队,因此最后赢得比赛。
数据分析总结
代码中有很多比较麻烦的地方,主要是由于函数认识的不多,同时运用的也不够熟练。另外由于数据类型各不相同,因此虽然认识了给类图表但仍难以将其与数据进行结合,R语言只是进行数据分析的工具,数据分析的核心是分析者的分析思维,否则就如同武侠小说中的人物拿到了绝世武器却不会武功一样,难以发挥其威力。下一步打算在继续学习的同时再多看一些数据分析思维方面的书籍。
本文内容来自大数据社群会员黄锐的实践笔记。
记得黄锐是3个月前加入大数据社群的,现在能利用碎片化的时间学习,并作出数据分析,进步非常快。
在一条路径上,若是真的有复利效应存在,那么最终拼的一定不是智商、机会、运气等等那种不可控的东西,拼的只有一样东西,而且它还是绝对可控的:持续工作里程。
希望他可以一直持续实践下去,点击下面“阅读原文”可以直达他的知乎专栏一起学习。