我决定再抬大家一手,把我做DOTA2数据分析以来,积累的经验、踩过的坑,写成这个系列文章...
序言:我是怎么转行做了数据分析师?(着急看课程的可以直接跳过)
年夏天,我和室友昊哥下班回到家,通常会一起操作几盘刀塔。
老年人连跪几把之后,到了「赢一把睡觉」的关键局,我们会默契的掏出开黑英雄组合——发条沉默。昊哥选发条劣单,我玩沉默走中,6级后发条勾上去、沉默开大稳定秒一个(智力+2),分的鱼塘基本没输过。相处非常融洽。
一旦有比赛,场面就没有这么和谐了,昊哥是B神粉丝,我是CTY粉丝。大部分比赛都是各看各的,毫无交流。偶尔B神对阵CTY,也是同屏异梦,各怀*胎。
但是!谁也没有想到!TI6前大地震一波操作,最后的结果居然是BCHRS合体组成VG战队,开启了燃烧的远征。听到这个消息,我和昊哥一下子就激动了!B神和CTY成了队友,我们两个小粉丝可以愉快的支持同一只战队了!
除了摇旗呐喊,我们两个码农决定做一个小软件——「BP助手」,统计各个队伍的BP特点(展示英雄协作和克制关系),想为燃烧*团出一份力...结果第二天昊哥接到一个新的工作任务,鸽了...我一个电子科大计院的水硕,离开浙大牛硕的支持,进展缓慢。
后来的事情大家都知道了——承载着万千粉丝希望的燃烧*团,一路披荆斩棘,却倒在了最后一战,抱憾离开TI6的赛场。(CTY曾回顾这段经历:作彼此的宝搞。)然而神奇的是,我对DOTA2数据分析的热情,并没有随着燃烧*团的失败而褪去,反而愈来愈高。从此之后,我没有再玩过一局刀塔,而是把以前拿来玩DOTA2的时间,全部用来学习数据分析(以DOTA2职业比赛为数据源),年底转行做了一名商业数据分析师。
在这一年半中,我用空余时间写了数十篇DOTA2数据分析文章。承蒙大家抬爱,阅读量不错,粉丝过十万,竟也成了自媒体。慢慢就有很多人私信我,问我如何学习数据分析。
点击图片查看大图
我很想好好回答这些问题,不辜负大家的信任。但是一方面零基础入门数据分析需要学习的东西很多,三言两语讲不清楚;另一方面我做数据分析师才一年,才疏学浅也不敢造次。
正巧当时「优达学城」的中国区负责人看到《TI7伤害之王》后找到我(这位兄弟也是doter),希望让我做数据分析课程的明星学员,体验并给出建议。深度了解之后,我觉得这个在线课程的课程质量、代码批阅、项目过关和学习氛围都挺不错。于是找优达学城订制了「DOTA2」专属优惠码,把数据分析师(入门)课程课程推荐给大家。
到目前为止,已经有数十人使用DOTA2优惠码报名了课程,而且学得不错。所以,我决定再抬大家一手,把我做DOTA2数据分析以来,积累的经验、踩过的坑,写成这个系列文章,让各位电子竞技爱好者在学习数据分析的时候,多一个参考~
现在开始上课。DOTA2数据分析入门(一):获取数据源
适合阅读本系列文章的读者
正在优达学城学习数据分析课程,同时又对电子竞技感兴趣的朋友
热爱DOTA2,想给自己点一个「数据分析」技能的朋友
本节课学完之后,你能回答这些问题
统计kpii场均要发几次:漂亮。
各战队BP的核心英雄是哪些?
几只顶尖战队的资源分配有什么差异?
给XX选手的第一条建议。
其他任何你觉得有意思的问题。
一、如何获取DOTA2数据源
获取DOTA2数据源的方式大致有四种:
手工统计。打开DOTA2客户端,看赛后统计或者游戏录像,拿小本本(excel)手工记录。缺点:效率太低。
查询数据统计网站(DOTABUFF\DOTAMAX\刀魔数据等)。缺点:无法获取特定(定制)数据,可能你想看的数据网站并没有展示,也很难对数据进行再加工。
调用官方和第三方提供的数据接口API,或者查询第三方数据库。缺点:门槛略高,需要掌握SQL(StructuredQueryLanguage)和python。另外API一般不会提供游戏细节数据(比如,只能告诉你肉山被杀了几次,而无法告诉你击杀肉山的最后一下伤害是多少)
解析录像。计算机代替人眼把游戏录像从头到尾看一遍(比任何人都看得更仔细,不会漏掉任何一个细节),得到游戏中发生的所有事情。缺点:门槛很高,需要会java或者golang语言。
二、业界最好的DOTA2数据源在哪里
先说API,码农世界的API指的是ApplicationProgrammingInterface,应用程序编程接口...是不是有点晕?有一种「黑板是吸收知识的地方,只是教室的阳光,那颜色我不太喜欢,没有操场的自然」的感觉?
没关系,我们换一个解释方式:API就是约定好一套规则,一方发出请求,一方按要求执行,并返回结果。举例!我早上去买热干面,跟老板说:一碗热干面,不要辣。付款之后等个几分钟,老板就会把热干面递给我。(老板提供了「热干面API」供我使用!)
点击图片查看大图
DOTA2数据API也是一样,你只用告诉系统要哪场比赛的数据,系统就会把数据传给你。只不过沟通语言从普通话换成了编程语言(python、java等),返回的结果从热干面换成了数据(json格式等),面馆也变成了数据提供方(官方API、OPENDOTA提供的API等)。
点击图片查看大图
那么,业界哪一个数据团队做的热干面最好吃(提供的数据最好用)?——OPENDOTA团队!有同学就要问了,OPENDOTA是个啥?数据不应该都在V社爸爸手里吗?为什么不用V社提供的API?
V社确实提供了官方API,但是很久没有维护(可能在度假吧,你看网站老掉牙的UI...),使用体验很差。我当初研究DOTA2数据源的时候,浪费了大量时间探索官方提供的WEBAPI。所以,这个坑大家就别踩了!
点击图片查看大图
调用API,需要掌握一门编程语言(我推荐python)。但编程语言的学习门槛略高,如果直接从python调用API入手,很容易在体验到数据分析的乐趣之前就被折磨的敲出GG。(python可以在网上找资料自学,如果基础太差没啥自信,也可以使用DOTA2优惠码报名优达学城的python入门课程。)
所以,让我们从使用SQL查询数据库开始学习!这里要给OPENDOTA点一个大大的赞!他们非常人性化的提供了一个交互查询功能,只输入SQL查询语句,网站就会把数据从数据库中取出来呈现给你。(不需要安装任何软件,对初学者很友好)
点击图片查看大图
那么如何学习SQL呢?
这个问题知乎上有更好的答案。但我想强调的是:兴趣是最好的老师。SQL经典教材,往往会让你查询经典的部门-职工数据库(或者学生-成绩数据库),做很多枯燥的练习,学了之后也容易忘记。但是!!!如果你本身是一个电竞爱好者,使用DOTA2数据库学习SQL,一定会学得开心又扎实!
本节课到这里就正式结束啦。有同学肯定一脸懵逼:这个课程和平常上的不太一样,没有概念讲解,也没有例题演练。没有就对了!这个系列的教程不是操作手册,更不是百科全书,只是试图给出一张明晰的鸟瞰图,帮助大家少走弯路。但路还是自己走过一遍,才会有所感悟。
如果想走的更快、有人同行(或者基础很差又决定了要做数据分析师),我还是推荐「优达学城」的数据分析零基础入门课程。(使用「DOTA2」优惠码可以减免学费,但会增加一个额外的毕业要求——写一份电竞数据分析报告,公开发表,接受大家的检验!)
给大家留几道SQL作业题(如果做不出来,下节课就不用上了...):
在刚刚结束的ESLOne云顶Minor赛事中,冠*Newbee一共使用了多少名英雄?5名选手谁的英雄池最深(分别使用了多少英雄)?
线下赛没有出场过的英雄有多少个?都是谁?
线下赛的热门上场英雄是哪些?胜率如何?各英雄的最佳使用者是谁(自选评价指标)?
几点说明:
本系列课程每月更新1~2次(马上要当爹了,有没有时间写文章,娃娃说了算...)
我的私信已经是学校的客服渠道了(问路、感谢、投诉、打小报告)。所以,遇到问题尽量Google解决(作为一名初学者,你遇到的99%的问题,前人都遇到过了),或者在评论中互相讨论。私信实在回不过来,还请大家见谅。
from:微博.何求知