sports-betting
用 scikit-learn 构建体育博彩预测模型,支持数据下载、回测验证、价值投注预测三步工作流
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 scikit-learn 构建体育博彩预测模型,支持数据下载、回测验证、价值投注预测三步工作流
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
如果有人告诉你,他花了五年时间收集了27个足球联赛、900多种联赛-赛季组合的历史数据,只为了一件事:找出那些被博彩公司低估的投注机会——你会不会觉得他在痴人说梦?
sports-betting 就是这样一个项目。它的作者 Georgios Douzas 从 2019 年开始,一个人维护这个开源工具,如今已有 742 Stars、139 Forks,在 GitHub 体育博彩类 Python 项目中算得上头部梯队。更重要的是:它不只是个项目——它是一套完整的体育博彩建模工作流。
体育博彩的本质,是一场信息战。博彩公司开出赔率,本质上是对比赛结果的概率估计。但赔率不是纯粹的概率——它包含一个"抽水"(over-round),确保博彩公司长期稳赚。
价值投注(Value Bet) 的逻辑很简单:当你自己估计的概率 > 赔率隐含的概率时,下注。 理论上,长期坚持下去,期望收益为正。
但说起来容易,做起来难。你需要:
sports-betting 正是为这四步设计的。
Dataloader(数据加载器) 负责从统计数据源(statistics source)和赔率数据源(odds source)下载数据,并将其整理成适合建模的格式。作者默认使用了 Football-Data.co.uk 的数据——这是一个覆盖27个联赛、数十年历史的免费足球数据集。
支持的联赛包括英格兰5级联赛、德国/意大利/法国/西班牙/苏格兰/荷兰/比利时/葡萄牙/土耳其/希腊的1-2级联赛,以及阿根廷、美国等16个国家的单级别联赛。每个联赛都包含多家博彩公司的历史赔率。
数据加载器支持灵活配置:可以按联赛、赛季、赔率类型(如 market_maximum,取市场上最优赔率)进行筛选。
Bettor(投注器) 任何 scikit-learn 估计器都可以包装成 Bettor。它提供两种核心功能:
BettorGridSearchCV 提供了超参数网格搜索,支持时间序列交叉验证(TimeSeriesSplit),避免了普通 K-Fold 交叉验证带来的数据泄露问题。
AI Agent(Claude MCP):项目作者特意强调,这是"first-class"的入口方式。安装 MCP 服务器后,可以直接用自然语言与数据交互、构建模型、解读结果。项目文档里展示了与 Claude 的完整对话——用自然语言让 AI 搜索策略、回测、找价值投注,全程无需写代码。
Python API:标准 scikit-learn 风格的 API,任意分类器都可以通过 ClassifierBettor 包装成投注模型。配合 make_pipeline、ColumnTransformer 等工具,可以构建完整的机器学习流水线。
GUI(Reflex Web 应用):提供了基于 Reflex 框架的 Web 界面,可以上传/创建数据加载器、回测策略、查看价值投注,内置 Bot 辅助引导。安装方式为 pip install sportsbet[gui],运行 sportsbet-gui 启动服务。
项目 README 里展示了多个真实回测案例,数据透明、可复现:
案例一:德国/意大利/法国联赛,2021-2024
案例二:意大利联赛平局投注,2021-2024
⚠️ 作者坦诚的警示:这些结果中有一部分是"搜索偏差"——我在数据上尝试了十几种配置,才找到了这个看起来不错的策略。在真正下注之前,请保留一个从未触碰的赛季做独立验证。
这种坦诚在博彩类项目中极为罕见。大多数同类项目会刻意隐藏回测失败的历史,而 sports-betting 的作者选择把方法论和局限性全部公开。
技术栈:
开发质量:
代码结构:
src/sports_betting/
├── dataloaders/ # 数据加载器
├── evaluation/ # 投注器 & 回测
├── sources/ # 数据源(FootballData 等)
├── cli/ # CLI 入口
├── mcp/ # Claude MCP 服务器
└── gui/ # Reflex Web GUI
pip 一键安装(推荐):
pip install sportsbet
带 GUI 版本(需 Node.js >= 22):
pip install sportsbet[gui]
sportsbet-gui
Claude MCP 接入(AI Agent 方式):
pip install 'sports_betting[mcp]'
claude mcp add sportsbet -- sportsbet-mcp
开发安装:
git clone https://github.com/georgedouzas/sports-betting.git
cd sports-betting
pdm install
sports-betting 代表了一个有趣的趋势:将专业金融量化分析的思维,迁移到体育博彩领域。价值投资的核心理念(找到被市场错误定价的资产)在体育博彩中找到了一个独特的应用场景。
项目最值得称道的地方,是它的方法论透明度——作者在 README 中详细展示了整个推理过程、参数选择逻辑,以及结果解读方式。对于想学习机器学习应用或量化建模的开发者来说,这是一个非常好的实战案例。
更重要的是,它证明了一个人也能维护一个高质量的开源项目:持续更新5年、完整的测试/文档/类型检查、活跃的 GitHub Discussions。
分析时间:2026-07-17 | 项目 Stars: 742 | Forks: 139 | License: MIT