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;未推斷任何額外功能。

相關

  • 專案
  • 專案
  • 專案
  • 專案