[閒聊] 嘗試以機器學習排出P+前三隊

看板basketballTW作者 (辣助)時間1年前 (2022/07/08 04:58), 1年前編輯推噓59(59038)
留言97則, 59人參與, 1年前最新討論串1/2 (看更多)
大家好 前陣子世界賽,看到很多人在討論P+前兩隊的選人標準 突然想到我曾經做過類似的專題(感興趣的人可以A我文章看,但很簡略xD) 因此決定再做一次,看看是不是與媒體投票的結果有所差異~ 先打預防針,這是機器學習的結果,基本上就是個黑盒子,所以大家看看就好,別太認真! - 懶人包: 以 PCA+t-SNE 對資料降維,並以 K-Means 對球員分群^[1] 再考慮各群對球隊勝率的幫助及各自的上場時間,得出結論(有根據P+規則) 第一隊-> 吉爾貝克李德威李家瑞陳堅恩李愷諺 第二隊-> 辛巴朱雲豪曾文鼎楊盛硯(?)、簡祐哲 第三隊-> 塞瑟夫林志傑林書緯林俊吉高國豪 (參考板友意見後,在推文有另一個版本) - 正文: 首先機器學習最重要的就是資料,分成傳統數據和進階數據 傳統數據部分來自P+網站,進階數據部分則來自Game Changer網站^[2] 範圍是本季例行賽,出賽多於十場、平均上場多於六分鐘、總上場時間多於一百分鐘 在這裡先吐槽一下,P+可不可以趕快完善數據這一塊,不懂到底難在哪...... 都有一個NBA stat給你抄了,到現在還是只有傳統數據@@ 但現在的資料維度(95個)太高,直接跑的結果不會好,因此需要先設法降低 這邊用的是比較常見的 PCA 和 t-SNE PCA 的中文叫做「主成分分析」,原理簡單來說是透過軸的旋轉 找到新的變數(即主成分),這個變數可以同時保留很多維度的訊息,從而達到降維目的 可以想像在二維平面上,假設資料點都是(1,1)、(2,2)、(3,3)...... 那麼比起用x、y軸記錄這些點,不如將座標軸旋轉45度,那就是只用一個軸達到同樣效果 但 PCA 完後仍有3X個維度,因此再引入另一種方法再度降維 t-SNE 我不太確定正式的中文譯名,直接翻的話叫「t分布隨機鄰近插入」 假設我們想要將一個圓上均勻的點投射在一條線上,勢必有重疊但其實距離很遠的點 那要如何讓這些點在線上可以分別?答案比想像中粗暴:先量原本的距離 量完後根據距離丟到t分布上,並賦予這些點一個條件機率 使這些點有更高的機會在投射後被分到原本距離近的點附近(抱歉真的很難解釋^[3]) 維度順利降到二維後,就可以開始對球員進行分群了,在這裡順便解釋一下原因 在現行所有評估球員的方法中,最難的點就是怎麼降低場上其他人的影響? 這就回到我的目的,也就是選出前三隊 對我來說,前三隊代表這些人上場就是贏球保證 因此我藉由觀察其他表現差不多的球員,去看說是不是其他人上場越多,球隊勝率越高? 當然這個想法有很多瑕疵,但現行公開的數據來看,我認為可能沒有更好的選項 分群的方法應該就不用介紹了,就是將距離近的點抓在一起,而這裡我將球員分10群^[4] 接著計算各群在各隊的上場時間,加上各隊勝率跑個迴歸,便得到各群平均對勝率的影響 值得注意的是各群之間各球員的相似度落在0.375至0.4左右 因此如果直接用上面得到的結果,會造成精確度的影響很大,那要怎麼解決呢? 其實統計很常見的做法就是:一次不行,那就多跑幾次,相信大數法則xD 所以我重複上述步驟100次,並將每次得到的勝率乘上同群相似度和總上場時間 最後得到的結果便是我用來決定前三隊的指標!(結果如懶人包所示)^[5] - 心得: 1.以這項指標來看,MVP德威、最佳洋將大B、最佳新人小烈 而敏哥和又瑋在這項指標中都不算太好 2.國王和領航猿的洋將在隊內排名都不高(湯瑪士隊內第9,里喬羅三人則幾乎墊底) 可能是國王的體系讓本土球員可以更好的發揮優勢? 3.結果看起來對中鋒評價都比較高,可能是採用的數據問題,也可能在台灣中鋒真的很好用 這一點等之後有更多數據後再作觀察 4.FMVP辛特力在隊內排名倒數第二,真正的季賽養生季後殺生代表? 5.這項指標為負值的人有-> 張耕淯聶歐瑪李盈鋒里金斯林宜輝錢肯尼 而領航猿和鋼鐵人大多都為負值,可能勝率太低所致,也可能體系有很大的問題 6.另外有一項指標是看各球員被分到的群,在全部裡面排名第幾 我原本想當作觀察有誰應該得到更多上場時間的指標,但容毅燊名列前矛讓我有點懷疑 7.以結果來看,應該模型表現沒有很好,未來再找找看有沒有衡量的指標做為參考 也歡迎對數據有興趣的板友們一起討論、集思廣益! - 附註: [1]這個過程參考自UCLA的一篇論文:https://tinyurl.com/544k9dkf [2]https://tinyurl.com/2e6y5qfr 其中除了各區域命中率以外皆有使用 順便問一下有沒有高人可以指點如何爬這種網站?慢慢複製好累...... [3]有興趣的板友推薦看https://tinyurl.com/4vhbkww3 非常淺顯易懂! [4]群數的決定辦法是土法煉鋼,從分2群到分10群,各跑1000次看結果哪個最好 [5]最後附上各隊前六名: 勇士 -> 塞瑟夫 > 曾文鼎 > 林書緯 > 林志傑 > 曾祥鈞 > 張宗憲 國王 -> 李愷諺 > 簡祐哲 > 林仕軒 > 林力仁 > 陳俊男 > 楊興治 領航猿-> 陳冠全 > 林耀宗 > 李家慷 > 林 正 > 溫立煌 > 盧峻翔 攻城獅-> 辛 巴 > 李家瑞 > 朱雲豪 > 陳堅恩 > 高國豪 > 吳岱豪 夢想家->吉爾貝克> 李德威 > 楊盛硯 > 林俊吉 > 吳永盛 > 陳振傑 鋼鐵人-> 布 朗 > 王柏智 > 王律翔 > 班尼特 > 鄭德維 > 盧哲毅 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.64.12.30 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/basketballTW/M.1657227507.A.232.html ※ 編輯: chih2loveu (61.64.12.30 臺灣), 07/08/2022 05:07:09

07/08 05:14, 1年前 , 1F
會不會有垃圾時間的問題?
07/08 05:14, 1F
可能 但就要看重播重新紀錄才行 就太累了xD

07/08 05:14, 1年前 , 2F
有趣 推個
07/08 05:14, 2F

07/08 05:14, 1年前 , 3F
這數據是不是冠軍賽直接打臉,不然就是一人球隊無法
07/08 05:14, 3F

07/08 05:14, 1年前 , 4F
參考
07/08 05:14, 4F

07/08 05:17, 1年前 , 5F
第三隊三後衛,是不是該換掉一個?
07/08 05:17, 5F
P的規定是可以三前兩後或兩前三後~

07/08 05:20, 1年前 , 6F
原PO沒有考量到主力問題嗎? 基本上前三隊一定是該
07/08 05:20, 6F

07/08 05:20, 1年前 , 7F
隊主力阿
07/08 05:20, 7F

07/08 05:21, 1年前 , 8F
你名單出現非主力排擠主力 不覺得有問題嗎
07/08 05:21, 8F
因為目前沒有客觀數據可以確定誰是主力(比較接近的可能是USG%?這我有放) 也無法證明所謂主力在場上對球隊是好處 但你說的也很有道理,所以目前想到的是那就乾脆限制平均上場時間要多於24分鐘 符合的有31位下去做,最後得到的結果是: 第一隊->辛巴李家瑞李愷諺吳永盛林書緯 第二隊->湯瑪士呂政儒簡浩高國豪吳家駿 感覺結果比較合理一點,相似度也有上升 ※ 編輯: chih2loveu (61.64.12.30 臺灣), 07/08/2022 05:31:48

07/08 05:29, 1年前 , 9F
李家瑞攻城獅第二?
07/08 05:29, 9F

07/08 05:31, 1年前 , 10F
感覺很多都跟直覺上的排名不一樣
07/08 05:31, 10F

07/08 05:32, 1年前 , 11F
如果用一樣的系統排NBA的不知道會怎樣
07/08 05:32, 11F

07/08 06:04, 1年前 , 12F
機器學習的問題通常都是數據的問題
07/08 06:04, 12F

07/08 06:05, 1年前 , 13F
數據很多 但要放那些資料才可以客觀評比都是學問
07/08 06:05, 13F
沒錯,這個問題困擾我好多個晚上QQ 看來還有很長一段路要走......

07/08 06:09, 1年前 , 14F
官方提供的數據不足時 模型
07/08 06:09, 14F

07/08 06:09, 1年前 , 15F
更難建立
07/08 06:09, 15F

07/08 06:09, 1年前 , 16F
原PO滿有心的 推
07/08 06:09, 16F

07/08 06:10, 1年前 , 17F
辛特力完全沒上榜 扯
07/08 06:10, 17F

07/08 06:10, 1年前 , 18F
Sample size感覺不太夠?就算PCA之後sample size是
07/08 06:10, 18F

07/08 06:10, 1年前 , 19F
不是也不到parameters 的10倍?
07/08 06:10, 19F
對,而且常見增加sample的方法感覺好像都不太適用? 小弟才疏學淺,目前想不太到有什麼解決方法@@

07/08 06:20, 1年前 , 20F
有趣推個
07/08 06:20, 20F

07/08 06:58, 1年前 , 21F
技術含量很高給推 XD
07/08 06:58, 21F
shifa大整理數據的想法也讓我受益匪淺! ※ 編輯: chih2loveu (61.64.12.30 臺灣), 07/08/2022 07:05:44

07/08 07:07, 1年前 , 22F
原PO加油 做到聯盟來找你就成功了
07/08 07:07, 22F

07/08 07:09, 1年前 , 23F
有正規化和Data cleaning嗎 怎麼德威家瑞會在第一
07/08 07:09, 23F

07/08 07:09, 1年前 , 24F
隊= =
07/08 07:09, 24F
都有! 德威就算了 家瑞一直名列前矛讓我這個家瑞黑好難受 ※ 編輯: chih2loveu (61.64.12.30 臺灣), 07/08/2022 07:13:19

07/08 07:14, 1年前 , 25F
家瑞德威的共同點都是季中有一段時間沒有上場
07/08 07:14, 25F

07/08 07:42, 1年前 , 26F
資料維度太高的話要不要試試看LBG vector quantiza
07/08 07:42, 26F

07/08 07:42, 1年前 , 27F
tion 來壓縮一下?
07/08 07:42, 27F

07/08 07:48, 1年前 , 28F
P的官網數據真的少到可憐
07/08 07:48, 28F

07/08 07:53, 1年前 , 29F
之前大勝還被登記到領航猿
07/08 07:53, 29F

07/08 07:54, 1年前 , 30F
這數據確實有趣
07/08 07:54, 30F

07/08 07:55, 1年前 , 31F
以前我是用類神經網路拓樸最佳群數
07/08 07:55, 31F
以這次資料來說可能不會有更好的結果 加上類神經現在是我的弱項,所以沒有使用 這部分之後會再去研究,感謝建議!
還有 36 則推文
還有 3 段內文
per36的問題是可能放大雜訊 所以目前主流的進階數據應該都比較少這麼做

07/08 10:32, 1年前 , 68F
推Game Changer 台籃進階數據專業網站
07/08 10:32, 68F

07/08 10:43, 1年前 , 69F
推數據 p的model比較複雜 牽扯到洋將使用限制
07/08 10:43, 69F
你沒說我還真沒注意到這一點xD 看來真的還有很長的路要走~

07/08 10:48, 1年前 , 70F
推,以後誰再酸家瑞只會假動作不敢投的,就拿這篇
07/08 10:48, 70F

07/08 10:48, 1年前 , 71F
打臉
07/08 10:48, 71F

07/08 10:48, 1年前 , 72F
推,敲碗control分差過大時的數據再跑一次的結果
07/08 10:48, 72F
這種苦差事可能真的很閒才能做xD

07/08 10:55, 1年前 , 73F
推一個
07/08 10:55, 73F

07/08 11:09, 1年前 , 74F
原PO是全部下去跑吧 也許可先做Feature Selection?
07/08 11:09, 74F
有想過,但一時想不到一個好的方法做篩選 但目前應該會朝這方面去做功課,看看怎麼做 感謝建議!

07/08 11:17, 1年前 , 75F
原來PCA也可以這樣玩xD
07/08 11:17, 75F

07/08 11:40, 1年前 , 76F
推用心分析 台籃真的回來了XD
07/08 11:40, 76F

07/08 11:42, 1年前 , 77F
會不會以後每一季都出一篇論文XD
07/08 11:42, 77F
有時間的話一定!

07/08 11:45, 1年前 , 78F
優文必推
07/08 11:45, 78F

07/08 12:05, 1年前 , 79F
推用心
07/08 12:05, 79F

07/08 12:05, 1年前 , 80F
結果看起來跟大家印象不一樣 勝率是使用logistic re
07/08 12:05, 80F

07/08 12:05, 1年前 , 81F
gression跑嗎
07/08 12:05, 81F
是用 Linear regression,我竟然忘了可以從迴歸下手 晚點會試試看,感謝建議!

07/08 12:18, 1年前 , 82F
推一個,這好酷
07/08 12:18, 82F

07/08 12:32, 1年前 , 83F
就算多跑幾次機器可能也會跟著你的數據客製化學習方
07/08 12:32, 83F

07/08 12:32, 1年前 , 84F
式,不過這算是無解的資料問題了,機器學習其實沒法
07/08 12:32, 84F

07/08 12:32, 1年前 , 85F
用太少的數據解決太複雜的問題
07/08 12:32, 85F
我相信這都會成為之後真正解決問題的養分!

07/08 13:09, 1年前 , 86F
推。不過多跑幾次不是大數法則,那是p-hacking,
07/08 13:09, 86F

07/08 13:09, 1年前 , 87F
一個當代的濫觴XD 個人比較不建議。
07/08 13:09, 87F
大數法則的確是開個玩笑xD 不過我這次是為了取加權平均(精確度太差) 應該不會有p-hacking的問題......嗎?

07/08 13:19, 1年前 , 88F
第一隊好弱
07/08 13:19, 88F

07/08 13:33, 1年前 , 89F
有趣
07/08 13:33, 89F

07/08 13:33, 1年前 , 90F
雖然看不太懂,但有其專業給推XD
07/08 13:33, 90F

07/08 14:43, 1年前 , 91F
DATA那麼少
07/08 14:43, 91F

07/08 15:46, 1年前 , 92F
07/08 15:46, 92F
※ 編輯: chih2loveu (27.52.194.174 臺灣), 07/08/2022 18:22:58

07/08 18:44, 1年前 , 93F
07/08 18:44, 93F

07/08 19:24, 1年前 , 94F
記者投票是憑感覺 也不是看數據的
07/08 19:24, 94F

07/08 19:26, 1年前 , 95F
這種套用只是好玩 實用上沒什麼意義
07/08 19:26, 95F

07/08 21:47, 1年前 , 96F
爬資料這點稍微看了一下他的網頁,可以試試selenium
07/08 21:47, 96F

07/08 21:47, 1年前 , 97F
加上pandas應該可以省去很多麻煩
07/08 21:47, 97F
好!感謝!馬上來去學QQ ※ 編輯: chih2loveu (61.64.12.30 臺灣), 07/09/2022 00:15:30
文章代碼(AID): #1YnqZp8o (basketballTW)
文章代碼(AID): #1YnqZp8o (basketballTW)