我用Python分析230场,打出了一次超6的团战!

《我用Python分析230场,打出了一次超6的团战!》系傻大方资讯网小编转载,希望对您有所帮助。 数十万互联网从业者的共同关注

作者:MOMO,授权早读课转载

来源:数据分析实习生(ID:DA_Intern)

编辑:Verna

作为一个非游戏迷,王者荣是自我出生以来玩得最久的一个游戏了。

虽然至今还没上到黄金段位,虽然才上了10次都不到的MVP,虽然还被队友举报过几次“消极游戏”,但这种种阻碍因素都没有降低我对它的热爱。

作为一个菜鸡,总是想着怎么样能上MVP,于是在十一第一天我在匹配的时候第一次玩了感觉上去很厉害的英雄“百里守约”。然而连续三次都被K.O.到爆,全局得分最低的就是我,噗...不忍直视。

我用Python分析230场,打出了一次超6的团战!

然后不知道什么原因,突然想到大数据分析是不是可以提升我的分数(大数据你个头啊,才200多条数据算P个大数据啊!!!)分析“几个因素的系数关系是否能帮助我拿到MVP?”于是,我牺牲了国庆可以浪半个世界的时间,躺在床上打农药,坐在椅子上打农药,靠在沙发上打农药,饭前饭后一局农药。哦~~做条咸鱼的感觉好幸福~

一、提出问题

每次defeat的时候,我就在想:①战绩里的击杀、死亡、助攻和金币是否都对最后排名有影响?②影响权重是否相同?③这几个因素和结果是什么样的关系?

二、假设

①假设任何版本农药计算分数的算法恒定不变;

②假设每场农药计算分数的算法相同;

②假设段位对计算分数无影响;

三、获取数据

利用近期玩王者每场每个英雄的历史数据,得到测试集和预测集共230条。图中击杀、死亡、助攻、金币和分数对应到相应字段为kill、death、assist、mon和score。

我用Python分析230场,打出了一次超6的团战!


我用Python分析230场,打出了一次超6的团战!

四、拟合分析

用python的seaborn包作出每个因素与分数的散点图和拟合直线和95%的置信带,如下,从图中可以看出击击杀(kill)、助攻(assist)和死亡(death)都与分数成线性关系,而金币(mon)和分数有一丝丝线性关系,但是不是太显著。

我用Python分析230场,打出了一次超6的团战!

[python]

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt

data = http://www.gunmi.cn/v/pd.read_csv("F:\wzry.csv")

sns.pairplot(data,  x_vars=["kill","death","assist","mon"], y_vars="score", size=7, aspect=0.8, kind="reg")

plt.show()





线性方程式为:score=a*kill+b*death+c*assist+d*mon,拟合参数如下,因为金币数太大,所以在拟合时,mon=原金币数/1000,使拟合效果更明显。

我用Python分析230场,打出了一次超6的团战!

从系数中能看出,击杀系数为0.49,助攻系数为0.24,死亡系数-0.60,金币为-0.06,可忽略不计(至于拟合出参数为负数,因为是拟合么,换一批数据可能是+0.06了。)

五、结论



所以根据以上,我发现一个拿高分的秘密,那就是,血薄的话一开始尽量别团的太厉害,不然就算助攻的多,死的次数也多,很容易全场最低分!!



掌握了此等技能后,我就经常去打小兵和推塔,或者打小野,于是就会被队友骂“这个狄仁杰有病?”“百里守约你在干嘛?”“虞姬是不是傻?”



同志!!我通过大数据分析(无聊之余)得出的结论,这么科学的方式,您竟然骂我,简直不可理喻。

我用Python分析230场,打出了一次超6的团战!

不然你看,我用实战告诉你,虽然我击杀和助攻不黄忠和那个谁,但是我依然MVP啊~~



我猜谨慎一些的朋友会说:那你怎么不看下拟合效果R2啊,还有为啥不将数据分为训练集和测试集啊?为啥不看评价测度啊?为啥不改进模型啊?emmmmmm,游戏重要还是模型重要?!有人叫我去开黑了嘛,这些问题留给爱动脑筋的小仙女们就好。



六、小插曲



把结论告诉喜欢玩游戏的小伙伴,大概直接招到鄙视了。kda是啥?moba又是啥???

我用Python分析230场,打出了一次超6的团战!

最后附上一次超666 的团战!