記,用Python分析農藥,打出了一次超6的團戰!
作為一個非遊戲迷,王者榮是自我出生以來玩得最久的一個遊戲了。
雖然至今還沒上到黃金段位,雖然才上了10次都不到的MVP,雖然還被隊友舉報過幾次「消極遊戲」,但這種種阻礙因素都沒有降低我對它的熱愛。
作為一個菜雞,總是想著怎麼樣能上MVP,於是在十一第一天我在匹配的時候第一次玩了感覺上去很厲害的英雄「百里守約」。然而連續三次都被K.O.到爆,全局得分最低的就是我,噗...不忍直視。
然後不知道什麼原因,突然想到大數據分析是不是可以提升我的分數(大數據你個頭啊,才200多條數據算P個大數據啊!!!)分析「幾個因素的係數關係是否能幫助我拿到MVP?」於是,我犧牲了國慶可以浪半個世界的時間,躺在床上打農藥,坐在椅子上打農藥,靠在沙發上打農藥,飯前飯後一局農藥。哦~~做條鹹魚的感覺好幸福~
一、提出問題
每次defeat的時候,我就在想:戰績里的擊殺、死亡、助攻和金幣是否都對最後排名有影響?影響權重是否相同?這幾個因素和結果是什麼樣的關係?
二、假設
假設任何版本農藥計算分數的演算法恆定不變;
假設每場農藥計算分數的演算法相同;
假設段位對計算分數無影響;
三、獲取數據
利用近期玩王者每場每個英雄的歷史數據,得到測試集和預測集共230條。圖中擊殺、死亡、助攻、金幣和分數對應到相應欄位為kill、death、assist、mon和score。
四、擬合分析
用python的seaborn包作出每個因素與分數的散點圖和擬合直線和95%的置信帶,如下,從圖中可以看出擊擊殺(kill)、助攻(assist)和死亡(death)都與分數成線性關係,而金幣(mon)和分數有一絲絲線性關係,但是不是太顯著。
[python]
importpandasaspd
importseabornassns
importmatplotlib.pyplotasplt
data = 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,使擬合效果更明顯。
從係數中能看出,擊殺係數為0.49,助攻係數為0.24,死亡係數-0.60,金幣為-0.06,可忽略不計(至於擬合出參數為負數,因為是擬合么,換一批數據可能是+0.06了。)
五、結論
所以根據以上,我發現一個拿高分的秘密,那就是,血薄的話一開始盡量別團的太厲害,不然就算助攻的多,死的次數也多,很容易全場最低分!!
掌握了此等技能後,我就經常去打小兵和推塔,或者打小野,於是就會被隊友罵「這個狄仁傑有病?」「百里守約你在幹嘛?」「虞姬是不是傻?」
同志!!我通過大數據分析(無聊之餘)得出的結論,這麼科學的方式,您竟然罵我,簡直不可理喻。
不然你看,我用實戰告訴你,雖然我擊殺和助攻不黃忠和那個誰,但是我依然MVP啊~~
我猜謹慎一些的朋友會說:那你怎麼不看下擬合效果R2啊,還有為啥不將數據分為訓練集和測試集啊?為啥不看評價測度啊?為啥不改進模型啊?emmmmmm,遊戲重要還是模型重要?!有人叫我去開黑了嘛,這些問題留給愛動腦筋的小仙女們就好。
六、小插曲
把結論告訴喜歡玩遊戲的小夥伴,大概直接招到鄙視了。kda是啥?moba又是啥???
最後附上一次超666 的團戰!
參考:
沒有讚賞功能的文章,有點不像原創


※Python必學基礎概念
※python最牛web框架居然是「它」
※十張圖讀懂 PHP、Python、Ruby 三大語言的差異
※為啥我的Python這麼慢(一)
※盛思PythonEditor離線版升級microbit模擬功能!
TAG:Python |