[棒球] MLB 大數據時代 分析方法分享

作者: freedom76912 (KHAKI)   2014-08-10 15:54:02
前言:
每個人都有不同的分析策略,就像股票市場有基本面、技術面、籌碼面、消息面等等。只要是這種充滿太多不確定性的遊戲,參與者都只能在眾多的假設之下,將問題簡化後逕行解決。本人的方法絕對不是最佳解,但是CP值應該還不錯(不用花太多時間),歡迎各位提供改良之建議,也誠心希望有網站parser的高手可以合作。
假設:
本人雖然看棒球,但是沒辦法像各位專家一樣分析地鉅細靡遺。尤其看到各位板友精闢的分析,本人更是自嘆自知無法達到此境界。既然自身無法達到各位專家的境界,不如借群眾智慧之力,試圖在此間預測一二。
而群眾智慧最精華最容易量化的所在,便是運彩賠率。不管是賭客的群眾智慧,抑或精算師的心血結晶(當然,也有可能只是抄賠率的工讀生?),眾人為了將自己的利益最大化,無不絞盡腦汁做出最佳分析。本人即可奠基於此群眾智慧,開始做進一步地分析。
方法:
本人主要的方法是機器學習(machine learning)。機器學習主要是設計和分析一些讓計算機可以自動「學習」的演算法:從數據中自動分析獲得規律,並利用規律對未知數據進行預測。簡言之,蒐集大量的數據,選擇適當的feature及label,即可讓機器學習演算法學到兩者間的關聯。
以本人的方法為例,feature就是[客讓分賠率, 客不讓賠率, 主讓分賠率, 客不讓賠率],label就是0或1(客贏為0,主贏為1。或是客讓分贏為0,主讓分贏為1。依照想要分析的結果而定)。
實作:
在本人刻苦耐勞手動將最近三個多月的比賽結果輸入後,即得到一千三百多筆數據(本人對網站parser不太熟,歡迎板友提供協助)。
機器學習採用最常用的向量支持機(support vector machine, SVM),實作為台大之光林智仁教授的libsvm(主要支援MATLAB、Python)。
一開始得到的結果相當直觀:在絕大多數狀況下,都是選擇賠率小的。此結論相當符合直覺,且在大量統計資料下的準確率大約為60%(大於50%,也就是比random guess好)。更準確地說,是使用了10-fold cross–validation驗證機器學習的準確率,而準確率約為六成。
為了進一步增加準確率,另外使用了機率的結果:SVM可以透過資料點與support vectors建立出來的平面之距離,換算成機率。換言之,不只可以預測結果為1或0,更可以評估預測的可能性,這也就是我在po文中提到的過關率。所以最後我可以挑出可能性較高的幾組,作為推薦的依據。
優點:
減少分析的時間。
缺點:
賠率變動會影響預測結果。
結語:
再次強調,這只是眾多分析方式的其中一種。本人也只是利用閒暇時間,將自身所學使用在這個問題上面。希望可以提供大家一些不一樣的分析方式。歡迎各位提供改良之建議。
作者: freedom76912 (KHAKI)   2014-08-10 16:16:00
我有說啊 近三個半月 約1300場R大的機器人比較猛R大的上界推導可以指點一下嗎不過我沒有套在機率上啊?我是把賠率視為high-level feature

Links booklink

Contact Us: admin [ a t ] ucptt.com