kyleskom/NBA-Machine-Learning-Sports-Betting
NBA sports betting using machine learning
使用機器學習進行NBA體育賭博
是什麼 – 一個Python專案,透過在歷史球隊統計數據與體育賭盤賠率上訓練機器學習模型,預測NBA比賽勝者(勝負盤)與總分(大/小分)。同時計算每筆投注的期望值,並可使用凱利準則建議投注金額。
主要組件
- 資料收集 –
Get_Data從NBA API抓取每日球隊統計數據;Get_Odds_Data從Sportsbook Review (SBR) 取得支援的賭盤公司(如FanDuel、DraftKings等)的賠率與比分。兩者皆將原始資料儲存於SQLite資料庫中。 - 特徵工程 –
Create_Games合併兩個資料庫,加入如休息天數等衍生欄位,產生可用於訓練的對位表。 - 模型 – 提供預先建構的腳本訓練兩類模型:
- XGBoost(梯度提升樹)用於勝負盤與總分預測。
- 一個簡單的前饋神經網路(TensorFlow)用於相同任務。
- 同時也提供邏輯回歸腳本。
- 預測腳本 –
main.py取得今日賽程,建構相同特徵集,載入已儲存模型,並輸出:- 每支球隊的勝率。
- 在列出賠率下投注的期望值。
- 可選的凱利準則建議投注資金比例。
- Web UI – 一個最小化的Flask應用(
Flask/)讓你能在瀏覽器中瀏覽最新預測結果。
如何執行
# 安裝相依性
pip install -r requirements.txt
# 更新資料(僅首次執行)
cd src/Process-Data
python -m Get_Data
python -m Get_Odds_Data
python -m Create_Games
# 訓練模型(可選 – 預訓練模型已隨專案提供)
cd ../Train-Models
python -m XGBoost_Model_ML --dataset dataset_2012-26 --trials 100 --splits 5 --calibration sigmoid
# …重複其他你想要的腳本
# 為今天進行預測
cd ../../
python3 main.py -xgb -odds=fanduel # 使用XGBoost並自動取得FanDuel賠率
你可以加入 -nn 使用神經網路模型,-A 執行所有模型,或 -kc 顯示凱利投注金額。
典型用例 – 體育賭博愛好者每天執行腳本,以資料驅動方式估算哪支NBA球隊被體育賭盤低估,並根據凱利準則資金管理策略決定最佳投注金額。
限制 –
- 模型僅基於截至當前賽季的資料訓練;不包含即時資訊(如陣容公布後的傷病情況)。
- 神經網路腳本硬編碼特定資料集路徑,自訂資料可能需要手動編輯。
- 准確性取決於抓取的統計資料與賠率品質;來源API的任何變更都可能導致管道中斷。
貢獻說明 – README邀請修改模型行為或資料管道的貢獻,貢獻者應相應更新文件。
以上所有資訊均直接來自倉儲的README;未推斷任何額外功能。
相關
- 專案
- 專案
- 專案
- 專案