作者aresa (阿綠傻)
看板LoL
標題[閒聊] 如何從比賽數據探討玩家表現
時間Mon Dec 26 00:51:59 2011
Abstract
拜台服戰績網[1]所賜,我們可以在他們網頁上找到一些資料,
我們可以找到戰績,kda(擊殺/死亡/助攻),以及勝率,
但常常我們打完一場之後,往往難以從賽後數據裡知道,
誰在這場比賽裡是比較有影響力的人,常常我們玩上路大男,
數據難看,但是隊友都知道你超坦才能打贏數場會戰,
也常常有ks(kill steal)魔人數據不錯,但是都知道他們十分影薄,
也有送死魔人,k和d都很高,但往往不知道對戰局是否有利,
所以我們從戰績網的現有資料去找一點東西看看。
Introduction
當我們在遊戲時,往往會知道殺人和死亡對戰局有絕對的影響力,
故我們知道,k和d是值得關注的數據,而打贏比賽有幾個關鍵,
第一是打贏會戰,打贏會戰往往有幾個要素,很carry(怎麼翻?罩嗎?),
或是十分tanky(硬幫幫),當然其中有cc(控場),有heal(補血),
這都是非常重要的小關鍵,但是終究回到夠不夠硬能撐完一輪cc,
或是夠不夠殺能在被cc後把敵人幹掉[2],並不是不想把cc和heal算進數據裡,
但由於計算上的難度,故我們將其省略,
並且在tanky及carry度裡多少能反應其價值。
我們在這篇文章裡探討的是,從基本的kda值加上戰績網的其他資料,
加以延伸應用出一場比賽的資訊PfP(Player for Performance)。
Kill and Total damage
首先我們要解決KS的問題,當然有時候KS並沒有錯,有時就差那麼一下,
就可以送敵人歸西,這是很大的差別,但作者經常被KS所以這一定要揪出來。
作者從戰績網裡面找出一場戰況膠著且相對作者的ELO來說算是高端的比賽[3],
採用的人則為西門夜說[4],該場比賽進行了33分鐘,兩邊的KDA值都相近,
故作者判斷這個比賽是勢均力敵的。
根據經驗法則,我要把一個人幹掉,我一定要打掉他的全部hp,
我要搶到他的人頭,則只需要最後一刀,但以貢獻度來說,把hp打光這個表現,
對於把人殺掉的這個結果,是比較有影響力的,包拓他血見底,看起來就比較好殺,
所以我們可以從這裡下手。
首先以西門夜說為例,KDA 6/6/10,總傷167838,人頭數6,助攻數10,
我們先簡略的把KA加起來,並用總傷去除,得到
TD/KA = 10489
但我們可以很明顯的看出錯誤,我們把打小兵的傷害也算進去了,
於是我們探討如何去除小兵的因素。
西門夜說殺了小兵+野怪(TM)總共255隻,我們粗略的將小兵的HP代入為450為MHP值,
別問我怎麼算的,自己開遊戲就知道,小兵的血還會上升的,
而且我們也不完全推兵,也有撿尾刀的技巧,故450是我算過幾場之後得到的
自己較能接受的數字[5]。
那我們將小怪數目乘上MHP值為
450*255 = 114750
去除掉小兵的因素之後,我們可以大略知道,西門夜說對人的傷害為
RDC(real damage for champions) = TD-(TM*450) = 53088
我們將k和a分別計算,由於a得到的錢為所有助攻者的70%分攤,
根據了數場的資料,我推算平均約要1.5個人+擊殺者才能殺掉一個人
故我們將a乘上0.5加上k,於是得到k=6,a=10,ka值等於6+(10*0.5)=11
所以我們可以開始算,西門夜說如果要把對方一個英雄殺死,
需要付出的傷害為。
pRDC = RDC / KA = 40338/11 = 4826
把一個人戳戳戳然後幹掉他,約需要4826點傷害,看起來不太合理
因為包含沒撿到尾刀浪費掉的傷害,所以我們之後會再做補正。
至少比一開始算的10489傷害像樣多了。
Tanky Point
再來我們探討D值,常有人去送死但又殺很大,也有人坦魂爆發坦了整場,
如何探討死的有沒有意義,是一件很重要的事情,現在我們來研究看看。
根據經驗法則,有意義的死,通常會帶走幾個人頭,沒意義的死,
只會送人頭,故我們從KA值探討D值的價值。
首先我們要知道,坦的定義是什麼,故我們將d(死亡數)拿出來和承受傷害,
做比較。西門夜說總共死6次,承受傷害共17571,再度根據經驗法則,
我們沒事不會給小兵打,就算有,也很少,通常會搭配藥水,故我們將回覆生命
加上承受傷害重新計算得到。
MT(被虐待狂坦克) = MD-RH = 17571 - 395 = 17176
然後除以D值得到
dpd(death per damage) = MT/D = 17176 / 6 = 2862
我們可以得到,要把西門夜說幹掉,只要平均輸出2862在他身上即可
可以印證,被殺容易殺人難的概念。若沒死過,則D=1。
Money
賺錢是一個很重要的任務,我們將TM值除以總金額可以得到
R = TM / TG = 12903 / 255 = 50.6
擊殺英雄也能賺錢,打掉塔也能賺錢,為什麼不加入計數呢?
英雄掉的錢會浮動,推塔是不確定因素,打龍更是要搶,這些都會反應在
全體收入,故我們將這些因素攤平到每隻小怪身上,這樣可以反應賺錢效率,
在前期小怪不殺會被別人撿走,在後期都是用洗的,故我們使用攤入的計算,
一方面也可以反應出SUP的價值,以及團隊合作度(團戰,偷塔,吃龍)。
Player for Performance
當我們有西門夜說的以下數據
pRDC = 4826
dpd = 2862
r = 50
這幾個數據之後,我們可以開始討論pfp值的計算
我們先列出其他隊友的數值:
隊友1 隊友2
pRDC = 4770 pRDC = 8138
dpd = 10267 dpd = 4323
r = 46 r = 82.83
隊友3 隊友4
pRDC = 307 pRDC = 1334
dpd = 1602 dpd = 2034
r = 682 r = 60.01
對手
對手1 對手2
pRDC = 2202 pRDC = 1849
dpd = 3172 dpd = 3687
r = 60 r = 49
對手3 對手4
pRDC = 8975 pRDC = 1608
dpd = 4275 dpd = 1406
r = 82.57 r = 387
對手5
pRDC = 5226
dpd = 2268
r = 53
表1 統計表
我們可以從表上得知,prdc越高,表示殺人效率越差,尾刀效率越差
故prdc越低,對團隊而言較為有幫助,尾刀效率越好
較高的prdc表示可能打到殘血讓敵人跑走,或是兩人都殘血但被殺掉,
prdc更代表了撿兵效率,越好的尾刀,可以讓prdc更低,
若是用洗兵的方式,會讓prdc分數下降,但跟每隻都用尾的方式cs是相同的,
但為何洗兵的分數會低,我想是因為會造成推線,故prdc給較低的分數,
這樣無腦a的人,分數自然會低一點。
而dpd顯示了tanky的程度,或是殺人技巧如何卓越,
衝入敵人奪取人頭後殘血逃離現場,越高的dpd表示越坦
R為賺錢效率,其中包含了很多涵意,掉塔數量
助攻,龍等等,我們可以發現較高的r代表賺錢效率較高
sup的部份甚至突破天際的高,某方面來說
賺錢效率可以反映你買的裝備,你花的錢,有沒有辦法幫你
得到更高的附加價值,你花錢買一把IE,你是否有辦法把IE發揮得更好
使得賺錢效率更高(更能推塔,殺人,搶buff等)
我們可以從表上得知,數值之間不同的差異,非常大,
所以我們採用rank分級,因為一場比賽裡,有多少資源都是固定的,
玩家只能阻止資源流失,同樣30分的比賽裡,能從小怪裡賺到的錢都是固定的,
故我們採用分級制度來量化數據。
以下是rank分級,我們總共把rank分為10級
prdc dpd r
rank 1
307 隊友3 10286 隊友1 682 隊友3
rank 2
1334 隊友4 4323 隊友2 387 對手4
rank 3
1608 對手4 4275 對手3 82 隊友2
rank 4
1849 對手2 3687 對手2 82 對手3
rank 5
2202 對手1 3172 對手1 60 隊友4
rank 6
4770 隊友1 2862 苦主 60 對手1
rank 7
4826 苦主 2268 對手5 53 對手5
rank 8
5226 對手5 2034 隊友4 50 苦主
rank 9
8138 隊友2 1602 隊友3 49 對手2
rank 10
8975 對手3 1406 對手4 46 隊友1
表2 分級表
total prdc = 39235
total dpd = 35915
total r = 1551
於是我們得到積分表
再乘上比重百分比(該數值在該統計裡的百分比)
我們只取dpd前四名加重配分,並且不計r
苦主 4 +5 +3 =12 無
隊友1 5 +10+1 =16 dpd加權 (10286/35915=0.3)故16+3=19
隊友2 2 +9 +8 =19 dpd加權 (4323/35915=0.1)故19+1=20
隊友3 10+2 +10 =22
隊友4 9 +3 +6 =18
對手1 6 +6 +5 =17
對手2 7 +7 +2 =16 dpd加權 (3687/35915=0.1)故16+1=17
對手3 1 +8 +7 =16 dpd加權 (4275/35915=0.1)故16+1=17
對手4 8 +1 +9 =18
對手5 3 +4 +4 =11
表3 加權表
最後補正推塔的分數,一場比賽有十一根塔,三座兵營,
拆塔是獲勝的充要條件,也能造福隊友,故每根塔,額外多給1.5分
兵營的話大多是集中推掉的,故給1分,推掉1根塔直接進位
整理如下,我們得到我們的pfp
苦主 逆命 4 +5 +3 +0 +4 = 16
隊友1 奈德麗 5 +10+1 +3 +3 = 22
隊友2 夜曲 2 +9 +8 +1 +0 = 20
隊友3 塔里克 10+2 +10+0 +0 = 22
隊友4 汎 9 +3 +6 +0 +2 = 20
對手1 安妮 6 +6 +5 +0 +2 = 19
對手2 科加斯 7 +7 +2 +1 +0 = 17
對手3 拉姆斯 1 +8 +7 +1 +0 = 17
對手4 索娜 8 +1 +9 +0 +0 = 18
對手5 崔絲塔娜 3 +4 +4 +0 +7 = 18
表4 pfp表
Conclusions
因為p幣不夠所以來騙一下(誤),主要是之前人肉一個苦主,感覺很對
不起他,因為裡面實在沒什麼料,有點誤導大眾,之後就一直在想,要如
何把玩家的表現量化,所以才弄出這些東西,很明顯的,對於sup來說,這
個表非常吃香,至少在攻擊指數和賺錢指數方面,另外就是統計系的可以免
費噓我,一個關於統計的文章居然連個標準差都沒用到實在可以自d不要出來
丟人現眼了,不知不覺就打了五個小時,原本想要跟大家慶祝聖誕節的也就算了
ps:本人elo 1277,以下開放噓文
Reference
[1]
http://loltw.meetgee.com/news/ 英雄聯盟戰績網
[2] Doublelift曾在一場比賽裡使用汎1v2在極端劣勢下被gank但反殺對方
[3]
http://loltw.meetgee.com/games/4ec939216c9f77276800bf41/
[4] 西門夜說是台服第一個上ELO2000的人,人怕出名豬怕肥,如果西門夜說
本人來跟我抱怨的話我就換成調整師或a君都可以。
[5] 前期撿尾後期洗兵,甚至傷害溢出都會算進去。故將前期和後期抵消掉。
--
位元堂養陰丸 ≡ ◢█ █◣ ≡ ㊣ by
好似太陽咁溫暖≡ 爆 ◤ ≡◥ 肝 ≡ 虛弱病患不要驚 aresa
∥驅寒理咳 ∥∥ 太陽出來了 —⊙-⊙-◤好似太陽 ≡ 寒痰咳嗽 請
∥∥除頑痰強 ∥∥ 太陽出來了◥ 皿 ╯咁溫暖 ≡ 好似雪人溶化了 跟
∥∥壯機能保氣血∥∥ ▃ ◥ ︶◤? ≡ 安心服用養陰丸 著
參考http://0rz.tw/e44p6 嬲◢ ∞ ◤ ≡ 太陽出來了 太陽出來了 唱
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.213.250
1F:→ keepoo :...論文膩 12/26 00:52
2F:推 kiwibee :雖然我end了 不過好像很厲害 所以我推了 12/26 00:52
3F:推 GOD5566GOD :你這篇打了多久阿 12/26 00:52
4F:推 weiweiweiwei:就算這樣寫...教授也不會讓你過喔! 12/26 00:53
5F:推 Murasaki0110:..... 12/26 00:53
6F:推 Umol :碩士畢業之後就不曾這樣打文章過... 12/26 00:53
7F:推 RobertAlexy :你可以跟戰績網合作… 12/26 00:54
8F:→ Umol :這一篇文章值 1000 Ptt幣 12/26 00:54
9F:推 OnSEx007 :嗯嗯 跟我想的一樣 被你搶先打了(心虛 12/26 00:55
10F:推 lexwu200212 :論文推...不過END謝謝 12/26 00:55
11F:→ Shalone :嗚嗚 難道要做檢定QQ 12/26 00:55
12F:推 sillymon :....這是甚麼 12/26 00:55
13F:推 wiiann :我也是這樣想的(誤 12/26 00:55
14F:推 yhchen2 :把這篇文章看完的人數大概跟把你碩論看完的人差不多 12/26 00:56
15F:推 dsfrf :先做個t撿定吧 再不行就用卡方 => 符號(最偷懶 12/26 00:56
16F:→ keepoo :完了那沒人看了 12/26 00:56
17F:→ dsfrf :反正總是能弄出來的~~~(指導教授的嘴臉 12/26 00:57
18F:推 egg123 :先推再... 12/26 00:57
19F:推 misaki030 :快推不然別人以為我看不懂 12/26 00:57
20F:推 ernieyang09 :KA/TD 寫反了 12/26 00:57
感恩
21F:推 nisak :看完了 12/26 00:57
22F:推 Solidsanke :..... 12/26 00:58
23F:→ chrisvzxs :所以POP值的高低有影響嗎? 12/26 00:58
24F:推 arnoldlai :END 12/26 01:00
25F:→ j02850 :end 12/26 01:00
26F:→ aresa :POP值就反應誰控線較好被打最硬殺人不手軟罷了 12/26 01:00
27F:→ aresa :喔耶賺1000p沒人噓我,只有一堆end 12/26 01:00
28F:推 chu630 :end 12/26 01:00
29F:→ chrisvzxs :有方法可以不用經過那麼複雜的計算看到POP值嗎?? 12/26 01:01
30F:推 RAYWU321 :挖賽 我本來也想弄類似的 12/26 01:01
31F:推 Homeparty :有用~!! 用心推 12/26 01:02
32F:推 DAVIDLONG :認真哥 推 12/26 01:03
33F:推 joliwugy :Tanky point 是要說明夠不夠坦嗎~結論很像不夠清楚XD 12/26 01:03
34F:推 sky80420 :看完推 @@ 12/26 01:03
35F:推 thatsocool :推 12/26 01:03
36F:推 curtpy :超威 但是看不懂.. 有免費分析服務嗎 12/26 01:06
37F:推 zseineo :XD 12/26 01:07
38F:推 shirman :所以結論.....到底誰貢獻最多??? 不懂... 12/26 01:08
就結論而言,這個表是顯示誰利用了固定會有的資源作出的表現
當然我懶沒有計算裝備和眼睛還有精鍊
表中可以看到奈德麗和塔里克GJ
39F:推 a9110513 :POP越高貢獻越高? 12/26 01:09
40F:推 sonic5566 :認真看完了 不過可以伸簡易求值的算法嗎 XD 12/26 01:09
41F:→ qiaffvvf :看完了..想法或許可行 但母體樣本過少不足以支持理論 12/26 01:11
42F:→ lpllpllpl :小兵那邊就有問題了? 不是連小兵都打最後一下嗎?XDD 12/26 01:11
43F:推 imkingtop :超威 推 12/26 01:11
44F:→ qiaffvvf :且不同區間/模式打法有所差異 討論範圍要再限縮 12/26 01:11
嗯沒錯所以希望有人可以把POP改進這樣就可以幫大家分析了
剛溫
45F:推 ryuking :雖然看到一半END 但推原PO的用心~~~ 12/26 01:12
46F:推 sawaman :不知道能不跟戰績網合作顯示出來,應該很實用 12/26 01:14
47F:→ sawaman :有時候光看KDA是真的還蠻不準的 12/26 01:15
48F:推 ckuforever :...................................... 12/26 01:15
49F:推 fff417 :我覺得想看誰貢獻多還是看RP...地圖控制無法數據化 12/26 01:18
這讓我想到NBA的這種東西更多XD,當然都是僅供參考囉
50F:推 seisai0121 :?? 12/26 01:18
51F:→ natsumi0416 :從LOL中畢業了... 12/26 01:19
52F:推 oof15 :這太屌了= = 12/26 01:26
53F:推 curstwings :OMG... 12/26 01:29
54F:→ superxk :完全不想看QQ 12/26 01:29
55F:推 ben3683 :不過我還是覺得關於傷害與坦的計算有一些偏誤 12/26 01:32
56F:→ ben3683 :比如說在傷害製造方面 打野腳色應該要有額外的考量 12/26 01:33
57F:→ ben3683 :另外AD跟AP腳色在製造傷害的型態也有差異 12/26 01:34
58F:→ ben3683 :如果要調整可以先去定義打野的調整方式 12/26 01:35
其實還好,jungle跟jungle比就好,仔細看其實很有趣
59F:推 hganan000 :從a=6 那裏開始就一頭霧水了.. 12/26 01:38
60F:推 moonjimmy :END 12/26 01:43
61F:推 kindhearted : 12/26 01:50
62F:推 j79091012345:............太威了....不過我end了QQ 12/26 01:50
63F:推 xes666 :推認真 但小兵應該不能這樣算 不可能都打掉滿血 12/26 01:53
我以後在後期一拳三百磅的時候也來尾兵看看
64F:推 rimoe :XDD 12/26 01:53
65F:推 Elivanta :我承認我一頁一頁乖乖看,同時我也承認我看不懂 12/26 01:56
66F:推 kryptos :太威了 12/26 01:58
67F:推 a2364983 :XDDD 12/26 01:59
68F:推 misy4ru3 :誰來寫個程式讓我只要輸入數字就好QAQ 12/26 02:03
int k=,d=,a=,tg=,tm=,td=,md=,rh=;
double ka =k+(a*0.5);
dpd = (md-rh)/d;
prdc= (td-(tm*450))/ka;
r=tg/tm;
matlab!!!
不過加權和rank要自己弄就是了(逃)
69F:推 a932l41l4 :END+1 推認真 12/26 02:05
70F:推 tkuallen :英雄聯盟實力評測首席分析師 暨 潛能選手深度發掘師 12/26 02:07
71F:→ dnki :喔~原來如此!! 他在說什麼?? 12/26 02:09
72F:推 ssd123698745:LOL版魔球 12/26 02:11
73F:推 Dont2000 :靠邀 回家打個LOL也要搞得像在LAB :( 12/26 02:17
74F:推 dogerii :前期大部分小兵不都是打最後一下嘛+1 12/26 02:36
75F:推 tbmaker :我覺得乾脆寫信建議riot多增加一些數值 12/26 02:37
76F:→ tbmaker :像是打英雄的傷害 打野怪的 打小兵的 分開算 12/26 02:37
77F:→ greedlend :performance of player ? 12/26 02:45
睡覺前上來看一下,我才想到我原本是要打for的(遮臉)
78F:推 monkiki1007 :太深奧了 只好推了 12/26 02:49
※ 編輯: aresa 來自: 220.135.213.250 (12/26 02:50)
79F:推 greedlend :prdc那邊不錯 12/26 02:51
80F:→ greedlend :pop縮寫比較討喜 12/26 02:52
81F:推 sycjohn :小兵的部分可能要再降 因為即使後期也會有塔的傷害 12/26 02:55
82F:→ aresa :我是覺得還好拉,畢竟這個是跟在場的9個人比 12/26 02:57
83F:→ aresa :科科如果戰績網想用的話也可以喔啾咪 12/26 02:57
84F:推 NotForever :看你這麼認真,給個推了 12/26 03:41
85F:推 as43 :好複雜阿 反正多練就對了 認真給推XDD 12/26 03:49
86F:→ chocoboy5566:孩子!你的文獻探討呢!? 12/26 04:08
87F:→ aresa :我想我應該是第一個(逃),剛剛rank被殺爆了哭哭 12/26 04:10
88F:→ aresa :自己算完之後居然顯示我是最混的Orz 12/26 04:11
89F:推 steve11631 :推認真...可是完全不會算XD 12/26 05:50
90F:推 ntcpe27 :分析推!科學化的打遊戲XD 12/26 06:47
91F:→ ntcpe27 :借轉電競板 12/26 06:48
92F:推 mark0912n :恩...防禦越高受到傷害會越低阿... 12/26 07:00
93F:推 appleIII :要寫的這麼專業不簡單 但要總結的讓大眾都懂也不簡單 12/26 07:49
94F:推 wulouise :個案討論為什麼要放標準差? 12/26 08:49
95F:→ wulouise :十個人表現用標準差也很怪吧 12/26 08:49
96F:推 ckp4131025 :因為跳錢和助攻等的關係,我認為R的算法會出現吃兵 12/26 09:22
97F:→ ckp4131025 :越多效率越差的結果 12/26 09:23
重新再解釋一下好了,一隻小兵近戰掉的錢約是24~30,弓兵是14~17
就算他們一個掉24,一個掉14,一波六隻各半,偶爾多一台車,量小到可以忽略
(24*3+14*3)/6=19,平均期望值是19
CS外的額外的收入是殺人推塔打龍跳錢
由於撿兵是收入的基本來源,也知道三線是最好賺的線
jungle和sup會比較窮,比較窮就比較難推塔打龍殺人(吧)
所以三線會在這裡吃點虧但是在推塔加權和tanky加權裡會贏回來不少
大概就這樣吧
好好笑喔我在幹嘛XDDD
98F:推 ckai1983 :昨天我玩一場, 四打五, 我用砲娘, 殺42死10 12/26 09:54
99F:→ ckai1983 :打贏惹 12/26 09:55
100F:推 ckp4131025 :樓上這推文跟這篇的關係是? 12/26 10:03
101F:推 eeqqww112233:0...0 12/26 12:09
102F:→ Mystiera :我們我們我們我們我們我們我們誰跟你我們 12/26 12:23
103F:推 icekeyboardy:這研究的感覺跟我現在學校弄得還真像= = 12/26 12:39
104F:推 darkmn0131 :太強了!!! 不過reference呢:D 12/26 12:50
105F:→ darkmn0131 :喔沒事 原來是不小心跳過-.- 12/26 12:51
106F:推 OOXXSUN :恩恩 跟我想得差不多 12/26 13:07
※ 編輯: aresa 來自: 140.136.149.204 (12/26 13:19)
107F:推 tropicmyway :這篇整理一下弄個表格公式附上去再來些圖就是論文了! 12/26 14:09
108F:→ tropicmyway :而且還可以研究曲線的變化代表的意義喔 XD 12/26 14:10
109F:推 CaLawrence :這篇太屌了 12/26 15:36
110F:推 nasmithed :看完了,感覺應該寄給Riot讓他放入系統,有用!! 12/26 18:53
111F:推 viudo :研究文 有點長QQ 下次補看下半部 12/26 19:25
112F:噓 jackal998 :紅明顯 那如果出一堆跳錢莊不吃兵就會超怪的唉像塔 12/26 22:30
113F:→ jackal998 :李克的R值682我一直以為你是打錯...這樣沒有信度 12/26 22:31
114F:推 jackal998 :捕推 12/26 22:32
115F:推 ESandman :好多 往往 往往 往往 往往 往往 往往 往往 往往 往往 12/27 23:58
116F:→ choosin :有評比就可能有刻意洗數據的問題 但是一般來說正常遊 12/28 02:48
117F:→ choosin :戲大家都想贏 為了數據去出跳錢不吃兵的carry害自己 12/28 02:48
118F:→ choosin :死又輸的狀況是很少的 12/28 02:48
119F:推 kyukyu :認真推 12/28 15:39