基于懂球帝赔率的 机器学习足球预测 项目:覆盖 五大联赛(英超、西甲、德甲、意甲、法甲),从亚盘 / 欧赔 / 大小球特征预测 胜平负(1X2) 与 比分。适用于 足彩分析、竞彩研究、足球赛果预测 等学习场景(非投注建议)。
English: ML-based soccer / football match predictor for Europe's top 5 leagues. Predict match outcome (home/draw/away) and score from bookmaker odds. Useful for football lottery research, sports betting analytics, and five leagues prediction experiments.
| 中文 | English |
|---|---|
| 足球预测、五大联赛预测 | football prediction, five leagues predictor |
| 足彩、竞彩、体彩足球 | football lottery, sports lottery (CN), match betting research |
| 胜平负、比分、赔率建模 | 1X2, correct score, odds-based ML |
| 英超 / 西甲 / 德甲 / 意甲 / 法甲 | Premier League, La Liga, Bundesliga, Serie A, Ligue 1 |
流程已解耦为四个独立脚本:历史采集 → 训练验证 → 今日采集 → 预测输出。
| 模块 | 脚本 | 说明 |
|---|---|---|
| 历史数据 | scripts/fetch_history.py |
拉取已结束比赛赛程 + Selenium 抓取赔率 HTML |
| 训练验证 | scripts/train.py |
双模型(胜平负分类 + 比分回归)训练,输出 4 项核心准确率 |
| 待预测数据 | scripts/fetch_today.py |
拉取未来 N 小时内开赛比赛 + 赔率 |
| 预测分析 | scripts/predict.py |
加载模型,生成 predictions_today.csv |
训练结束后写入 models/metrics.json:
| 字段 | 含义 |
|---|---|
outcome_accuracy |
胜平负准确率 |
score_exact_accuracy |
比分精确命中率(主客队进球均正确) |
score_top2_hit_accuracy |
比分 Top2 命中率 |
outcome_accuracy_when_score_outcome_agrees |
比分与胜平负一致时准确率:分类头预测与「取整比分推导的胜平负」一致的那部分样本上的准确率 |
已移除置信度分桶、概率门槛表等分层统计,便于阅读与维护。
- 建议总训练场次 > 1000 场(采集可用
--max-history 5000);少于 1000 场时验证指标波动较大。 - 在约 5000 场、
ensemble模型、按时间 8:2 划分下,验证集参考水平约为:胜平负 49.5%、比分精确 11.2%、比分 Top2 20.7%、比分与胜平负一致子集上胜平负 54.1%。详见 docs/TUTORIAL.md 中「基准参考」一节。
- Python 3.10+
- Chrome 浏览器(Selenium 自动下载 ChromeDriver)
- 可访问
api.dongqiudi.com与n.dongqiudi.com
git clone https://github.com/troycjj/five-leagues-football-prediction.git
cd five-leagues-football-prediction
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate
pip install -r requirements.txt在项目根目录下执行:
# 1. 采集历史(从最近比赛向前扫,满 5000 场即停赛程 API;仅赔率抓取仍耗时)
python scripts/fetch_history.py --max-history 5000
# 2. 训练(默认集成树模型,推荐)
python scripts/train.py --model-backend ensemble
# 3. 采集今日待预测比赛
python scripts/fetch_today.py --predict-hours 48
# 4. 预测
python scripts/predict.py输出:
data/history/— 历史 manifest +odds/*.htmldata/today/— 今日 manifest + 赔率models/model.joblib— 训练好的模型models/metrics.json— 验证集 4 项指标models/predictions_today.csv— 预测结果
five-leagues-football-prediction/
├── five_leagues/ # 核心库
│ ├── collection.py # 历史 / 今日采集
│ ├── features.py # 赔率 HTML → 特征
│ ├── training.py # 训练与验证
│ ├── inference.py # 预测
│ └── ...
├── scripts/ # 命令行入口
├── data/ # 运行时数据(gitignore)
├── models/ # 模型与输出(gitignore)
├── docs/TUTORIAL.md # 详细教程
└── requirements.txt
--model-backend |
说明 |
|---|---|
ensemble(默认) |
HistGBM + RF + ExtraTrees 集成分类;双回归器集成比分 |
torch |
双 MLP(OutcomeMLP + ScoreMLP),需 GPU 可选 |
python scripts/train.py --model-backend torch --epochs 80 --force-cpu中文: 足球预测、五大联赛预测、足彩预测、竞彩足球、竞彩预测、胜平负预测、比分预测、赔率预测、懂球帝数据、英超预测、西甲预测、德甲预测、意甲预测、法甲预测、机器学习足球、足球数据分析
English: football prediction, soccer prediction, five leagues, match outcome prediction, correct score prediction, 1X2, sports betting ML, odds prediction, Premier League prediction, European football ML, football lottery research
本项目仅供学习与研究,不构成任何投注建议,不保证预测收益。请遵守懂球帝及相关网站的服务条款,合理控制请求频率。Gambling involves risk; use at your own responsibility.
若本项目对你有帮助,可通过 微信支付 自愿打赏,用于鼓励维护与文档更新。不捐赠不影响任何功能使用,也不构成对本项目的购买、订阅或技术服务关系。
微信扫码 · 可选赞赏 · WeChat Pay (optional tip)
捐赠相关声明:
- 捐赠为个人自愿行为,请在确认金额后扫码;请勿在不明链接或非本仓库说明的场景下付款。
- 捐赠不换取预测结果、模型定制、投注建议或任何盈利承诺;项目方不对使用本软件产生的直接或间接损失负责。
- 收款为个人赞赏性质,非商业销售;如需发票或合同服务,请另行联系作者私下约定。
- 未成年人请勿捐赠;请理性支持,量力而行。
本项目采用 非商业使用许可(禁止商用,其余在个人/教育/研究/免费分享前提下允许使用、修改与再分发,须保留版权声明与出处)。
- ✅ 允许:学习、研究、教学、个人试验、免费开源再分发(注明出处)
- ❌ 禁止:出售、收费服务、商业产品集成、付费荐彩/预测、广告变现等 商业用途
- 商业合作或商用授权:请通过 GitHub Issues 联系作者