研究代號:活在球內盡是數據

最近Pokemon Go在全球掀起一股熱潮,世界各地的訓練員,來自不同年齡,香港從以前全民皆股,全民皆炒,變成全民通街走;由之前的雨傘XX遍地開花,變成遍地開櫻花,這遊戲無疑能短時間改變了我們日常生活習慣,是好是壞,那就要看看玩家自己本身了。筆者個人也十分熱愛寵物小精靈,GBA遊戲:舊版,金銀,紅藍寶石通通玩過,Pokemon Go的出現不但讓自己找回童年的回憶,更成為下班後的減壓良物。


小時候的畫功真的有點不堪入目(囧)


當然在娛樂的時候,我也不忘做一點分析的工作,本文並不是分享Pokemon Go的攻略,如果想知道關於pokemon go的攻略,不妨瀏覽我朋友小影寫下的攻略,既實用亦具參考價值。而我研究的Scope會更大,除了pokemon go的精靈,更會研究所有手提遊戲機(GBA, 3ds)版本的精靈。

近日,我發現了一個網站免費提供API (https://pokeapi.co/),能夠從中獲得小精靈們的數據,由最舊的黃版至X-Y版也包含在內,由於Request的次數是有上限的,所以我把獲取下來的數據先放在MongoDB,也即是NoSQL的資料庫,需要時從資料庫拿出來就好了。之後的資料整合及分析會交給Python中的Pandas, Scikit-learn的package來處理。

手提遊戲機版本(以下統稱為GAMEBOY版本)的精靈至X-Y新世代,一共有750隻精靈寶可夢(不要問我為何要刪掉寶可夢),基本屬性已有18種,加上有些精靈是擁有兩種屬性,屬性的組合實在多不勝數,另外,精靈的基礎能力也分為6個維度:血量 (HP),速度 (speed),攻擊力 (attack),特攻力 (special_attack),防禦力 (defensive),特防力 (special_defensive)。為了顯示每一只精靈的能力,我plot了一幅簡潔易明的圖表:


如果我們有3-dimension的資料,當然可以用3D圖來顯示,可是換着更高維度的呢?用4D, 5D圖?開玩笑的,其實有一個實用的方法:先利用Principal Componets Analysis (PCA) 是把6個dimension降成2個dimension,再用平面圖表示每一點,大家不用理會X, Y-axis的意思,可以了解點與點之間的距離的意思,愈遠的距離代表兩只精靈的能力愈不同,愈近的代表能力相近。6條直線均為vector,為了讓大家明白這6條有方向性的直線,大家看看下圖圈下的一點,由於它與其他點的距離相對很遠,所以它的能力應該是與眾不同,好奇的筆者也把它從圖鑑找出來,原來是"壺壺",大家可以看到它的能力值是如此極端,其防守和特防力遠超其他能力,攻擊和速度更是非常遜色,再回到左圖,我們看到壺壺那一點是最接近defense和special_defense的那條線(黑、灰色),並遠離其他的線。所以精靈們的每一點可以靠這幾條vectors,反映其能力傾向那一邊,由於6條直接的方向也是向著右手邊,能力愈強的精靈會側在右手邊(其實大部分的神獸都集中在右邊),換句話說,較弱的(尤其是初階的)會傾向左方。


右圖來源:http://www.pokemon.com/us/pokedex/


"代歐奇西斯"的驚人的速度和特攻力,其點也接近速度和特攻的vector。




"創世神"的每項能力平均地高,所以它的點落在正右邊也不意外。



站在屬性的維度來看精靈們的能力,似乎沒有什麼的東西發現,或者我們換另外一個角度看精靈們的能力。根據精靈們第一次出現的版本分成6類:舊版(紅、藍、綠、黃),金銀版(金、銀、水晶)、寶石版(紅、藍、綠),鑽石珍珠版,黑白版,以及X-Y世代。例如,小火龍第一次出現在舊版,所以它會分類為"舊版"; 菊草葉會分類為"金銀版"。
Remarks: "x"的顏色跟上圖一樣代表著不同的版本,紫色點為中心(0, 0)


我們先從每一個版本觀察,首先,舊版那幅散點圖,最右下方的一點就是最強的超夢夢,憑著出色的特攻和速度,站在"一哥"的位置,對比之下,接著的啟暴龍和三大神鳥顯得較平凡。到了金銀版卻是由聖獸鳥,鳯王和利基亞主導,超越了水君、雷公、炎帝。如果大家有玩過紅藍綠寶石的話,應該知道這個版本有十隻神獸(上圖也未能盡綠),剛才也提過,精靈能力較突出,其點會傾向右方(包括右上、右中、右下方),所以紅藍綠寶石的散點圖,比起其他版本有更多點落在右邊的位置。之後的版本亦一樣,神獸的基礎能力確實較為出色,順帶一提,X-Y世代中的神獸:Xerneas和Yveltal的能力值是完全相等的。而綜觀各版本,自從鑽石珍珠版開始,精靈們的分怖也偏向右邊,即是基礎能力整體比之前的遊戲版本來的的高,但原因不明,有待留給其他專家考究。



同一原理,我把這個方法應用到Pokemon Go的數據上,不過能力的種類簡單得多,能力的Dimension只有Stamina(HP), Attack, Defense, 最大CP值,最後得出一個平面圖(右圖)。我們可以看到Pokemon Go的精靈能力的設計對比起Gameboy版(左圖)是簡單得多的,Gamboy版精靈的每一項能力之間沒有明顯的Correlation,因為它們的vector均指向不同方向。 至於pokemon go,攻擊力和防守力呈強烈正比的關係(attack, defense的vectors幾乎是同一方向的)愈高攻擊力意味著愈高的防守力,而血量跟攻擊力成反比,在pokemon go的世界,CP 值是反映精靈的總體能力,所以其vector (紅色直線) 指向右方亦不意外,也因此,愈高CP值的精靈,會傾位於右方。


我把在外圍的精靈找出來,把它們貼在圖裡且成呈心型,能力較低的精靈歸去左邊,相反強大的則位於右邊。卡比獸的最大CP值在Pokemon Go暫時是最高的,僅接著是三大神鳥,較為平民的有奉神犬和貝貝龍,下次遇到這幾隻精靈,一定要把它們捉起來,重點培育它們。雖然鯉魚王早就輸在射X前,但是仍可以靠進化踏入社會上層,不過要先吃400顆糖,進化旅途十分漫長。圖中的Outlier是吉利蛋,自成一角的它擁有最高的耐力以及最低的攻擊防守力,不知道官方為何給它如此奇特的設定。

P. S. 暫時沒有夢夢、超夢夢、戴夢夢的數據
精靈太多,無法盡錄


來到本文尾聲,相信讀者們的讀後感都是:雖然這一次研究雖然說不出什麼大道理,但我看完卻覺得非常之有親切感。

Source: https://www.youtube.com/watch?v=0JIeaw3KW3U


~完~


Comments