大家好,又到了一年一度的iThome鐵人賽。
過去面對需要長時間完成的挑戰時,我常常因為時間不夠、擔心成果不好,或是給自己太多莫名的壓力,而很快產生放棄的念頭。有時候明明還沒有真正開始,腦中就已經先想像了各種困難,最後乾脆告訴自己:「還是下次再做吧。」
所以今年,我決定再給自己一次機會。
這次我選擇參加「自我挑戰組」。比起追求一開始就做出多麼厲害的成果,我更希望自己能夠每天完成一小步,把遇到的問題、學習的過程與犯下的錯誤記錄下來。
我不要求自己30天後成為資料分析專家,也不期待做出能夠取代職業球探或球團分析部門的系統。我這次最重要的目標只有兩個:
我是一位喜歡棒球、具有程式設計、演算法與遊戲開發背景的普通球迷。
雖然過去曾經接觸程式開發,但這是我第一次正式嘗試完成一個相對完整的資料分析專案。因此,這個系列不會以棒球專家或職業球探的角度評論球員,而是記錄一位球迷如何從問題出發,一步一步學習資料取得、清理、分析、建模與驗證。
為什麼選擇棒球數據?
觀看棒球比賽時,我們經常會接觸各種數據,例如打擊率、上壘率、長打率、OPS、防禦率與WHIP。
過去的我通常只知道某些數字越高或越低,可能代表球員表現越好。但是,如果進一步問我這些指標如何計算、適合用來回答什麼問題,以及可能忽略哪些因素,我其實沒有辦法完整說明。
看球時,我也經常產生一些很直覺的想法:
這些問題不一定有簡單或唯一的答案,但它們可以被轉換成資料分析問題。
因此,我想利用MLB公開資料,實際檢驗自己看球時的直覺,同時學習如何根據資料範圍、分析方法與證據強度,寫出比較合理的結論。
這個系列不會只停留在介紹AVG、OPS等棒球指標,也不會只是將球員資料依照數字由高到低排列。
我希望完成一次比較完整的資料分析流程,包括:
為了避免範圍過大,這次會先以MLB打者資料為主。投手、球隊戰績、薪資、合約與交易分析雖然也很有趣,但暫時不會全部放進第一個版本。
雖然系列標題的主角是棒球數據分析,但AI也會是這次實驗的重要部分。
因為這是我第一次正式進行資料分析,我想同時觀察:
AI能不能協助資料分析初學者完成專案?它提供的分析又有多少可以相信?
在學習過程中,我會使用AI協助:
不過,AI的回答不會直接被當成正確答案。
它可能使用錯誤的公式、誤解資料欄位、忽略樣本數,也可能把相關性解釋成因果關係。因此,每次使用AI之後,我都會盡可能對照資料來源、實際執行程式,並確認數據是否真的支持它提出的結論。
除了使用AI協助學習,我也會嘗試建立實際的機器學習模型,包括球員分群、相似球員搜尋及簡單的跨球季表現預測。
這30天預計累積成一個小型Side Project:
AI MLB打者數據分析助手
使用者可以透過自然語言提出問題,例如:
系統會先透過Python或SQL查詢與計算真實資料,再產生圖表,最後由AI整理分析結果、資料條件與限制。
我不希望讓AI直接「猜」出棒球數字。AI可以負責理解問題與整理說明,但實際數值應該交給程式與資料庫計算,讓分析結果可以被檢查與重現。
關於這個系列的限制
我不是職業球探、教練、球團管理人員或棒球數據專家。這是一個資料分析學習與實作系列,不是對球員或球隊的權威評價。
文章中的分析結果,只適用於當下採用的:
公開數據也無法完整呈現球員的健康狀況、心理因素、球探觀察、球隊戰術與其他非公開資訊。
如果分析中出現錯誤或理解不完整的地方,我會在確認後補充或修正。比起證明自己的答案一定正確,我更希望練習如何提出問題、尋找證據,以及根據證據調整原本的想法。
30天後,我不期待自己突然成為棒球數據專家,但希望能夠回答以下問題:
這次挑戰不只是學習棒球數據分析,也是一次練習面對未知、允許自己犯錯,並持續完成下一步的過程。
那麼,我們下一篇見。