㈠ DOTA2數據分析入門(一):獲取數據源
2016年夏天,我和室友昊哥下班回到家,通常會一起操作幾盤刀塔。 老年人連跪幾把之後,到了「贏一把睡覺」的關鍵局,我們會默契的掏出開黑英雄組合——發條&沉默。昊哥選發條劣單,我玩沉默走中,6級後發條勾上去、沉默開大穩定秒一個(智力+2),4000分的魚塘基本沒輸過。相處非常融洽。
一旦有比賽,場面就沒有這么和諧了,昊哥是B神粉絲,我是CTY粉絲。大部分比賽都是各看各的,毫無交流。偶爾B神對陣CTY,也是同屏異夢,各懷鬼胎。
但是!誰也沒有想到!TI6前大地震一波操作,最後的結果居然是BCHRS合體組成VG戰隊,開啟了燃燒的遠征。聽到這個消息,我和昊哥一下子就激動了!B神和CTY成了隊友,我們兩個小粉絲可以愉快的支持同一隻戰隊了!
除了搖旗吶喊,我們兩個碼農決定做一個小軟體——「BP助手」,統計各個隊伍的BP特點(展示英雄協作和剋制關系),想為燃燒軍團出一份力...結果第二天昊哥接到一個新的工作任務,鴿了...我一個電子科大計院的水碩,離開浙大牛碩的支持,進展緩慢。
後來的事情大家都知道了——承載著萬千粉絲希望的燃燒軍團,一路披荊斬棘,卻倒在了最後一戰,抱憾離開TI6的賽場。(CTY曾回顧這段經歷:作彼此的寶搞。)然而神奇的是,我對DOTA2數據分析的熱情,並沒有隨著燃燒軍團的失敗而褪去,反而愈來愈高。從此之後,我沒有再玩過一局刀塔,而是把以前拿來玩DOTA2的時間,全部用來學習數據分析(以DOTA2職業比賽為數據源),年底轉行做了一名商業數據分析師。
在這一年半中,我用空餘時間寫了數十篇DOTA2數據分析文章。承蒙大家抬愛,閱讀量不錯,粉絲過十萬,竟也成了自媒體。慢慢就有很多人私信我,問我如何學習數據分析。
我很想好好回答這些問題,不辜負大家的信任。但是一方面零基礎入門數據分析需要學習的東西很多,三言兩語講不清楚;另一方面我做數據分析師才一年,才疏學淺也不敢造次。
正巧當時「優達學城」的中國區負責人看到《TI7傷害之王》後找到我(這位兄弟也是doter),希望讓我做數據分析課程的明星學員,體驗並給出建議。深度了解之後,我覺得這個在線課程的課程質量、代碼批閱、項目過關和學習氛圍都挺不錯。於是找優達學城訂制了「DOTA2」專屬優惠碼,把數據分析師(入門)課程課程推薦給大家。
到目前為止,已經有數十人使用DOTA2優惠碼報名了課程,而且學得不錯。所以,我決定再抬大家一手,把我做DOTA2數據分析以來,積累的經驗、踩過的坑,寫成這個系列文章,讓各位電子競技愛好者在學習數據分析的時候,多一個參考~
現在開始上課。DOTA2數據分析入門(一):獲取數據源
適合閱讀本系列文章的讀者本節課學完之後,你能回答這些問題一、如何獲取DOTA2數據源
獲取DOTA2數據源的方式大致有四種:
二、業界最好的DOTA2數據源在哪裡
先說API,碼農世界的API指的是Application Programming Interface,應用程序編程介面...是不是有點暈?有一種「黑板是吸收知識的地方,只是教室的陽光,那顏色我不太喜歡,沒有操場的自然」的感覺?
沒關系,我們換一個解釋方式: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作業題(如果做不出來,下節課就不用上了...):
幾點說明: