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;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目