ZYRVIS · 产品 11 / 12

Football Analysis

足球分析预测系统 — 学术 SOTA 算法(Dixon-Coles 1997 / Maher 1982 / Karlis-Ntzoufras 2003 / Lambert 1992)的胜平负与精确比分预测引擎。
把「谁会赢、最可能几比几」从主观判断变成可复现、可回测的量化概率。

Python Dixon-Coles / Poisson 统计建模 scipy / numpy(L-BFGS-B) Claude LLM API 59.9% 胜方准确率
▶ 试玩 Demo ← 全部产品

把直觉变成概率

三轨混合架构:Dixon-Coles 原文极大似然估计每队攻击/防守强度,5 种统计学比分分布方法生成全场比分概率矩阵。基于 49,417 场国际比赛(1872-2026)训练,walk-forward 零泄漏评估下胜方预测准确率 59.9%。

🎯
D&C MLE 引擎
每队 attack/defense + 主场加成 γ=0.233 + 时间衰减 half-life=730 天,317 队拟合仅需 0.6 秒。
📊
5 种 SOTA 比分预测
Dixon-Coles τ / Zero-Inflated Poisson / Bivariate Poisson / Poisson 基线 / Negative Binomial。
🧠
LLM 战术因子叠加
Claude API 分析新闻 / 伤情 / 阵容,输出战术因子 JSON 转化为 xG 偏移。
🔁
复盘-训练-预测闭环
赛后自动提取新因子写入 lessons.json,持续自我进化。
零泄漏可复现回测
严格 walk-forward 评估,曾主动撤下「100% 准确率」虚标数字 — 数字必须经得起回测。
📄
一键 PDF 报告
联网搜索 → 预测 → Markdown → HTML → PDF,一条命令出完整赛前分析报告。

先承认,再谈算法

这个系统最特别的不是模型,而是它对自己犯过的错记得清清楚楚。以下每一条痛点都来自 CHANGELOG 里的真实事故,解法也都是落地过的真实修复 —— 数字必须经得起回测,撑不住的就主动撤下。

🕳️
痛点:数据泄漏造出「100% 准确率」
v10.1 审查发现回测把真实进球当输入,「7 场回测 100%」完全无效。
解法:改用仅赛前可得信息 + walk-forward 零泄漏评估,并公开撤下全部不可复现指标。
📉
痛点:场均进球系统性低估 36%
乘积式 xG 在「强对强」配对下负相关,预测场均 1.66 球 vs 实际 2.58。
解法:v11.0 改用 Dixon-Coles 原文 MLE 估计 xG,偏差从 −36% 收敛到 −4%(2.61 vs 2.72)。
🎯
痛点:精确比分有数学上界
合理比分 20+ 种,每种天然概率 <5%,即使完美模型单场 Top-1 也难超 15%。
解法:不赌单比分,输出 Top-5 比分 + 胜平负三向概率 + 进球区间,信息量更诚实。
🗞️
痛点:纯数字看不见「姆巴佩复出」
v9.0 立项时的原话是「实际分析太少,算法过度工程化」—— 伤情、首发、战意都不在数据库里。
解法:LLM 战术层分析新闻/伤情/阵容,输出因子 JSON 转化为 xG 偏移。
🤝
痛点:平局召回率长期为 0%
15 个版本审计显示平局几乎从未被预测出来,M48 英格兰 0-0 加纳在 89% 信心下爆冷。
解法:11 因子智能平局检测器:门将扑救率、双方进球趋势、轮换预警、近 2 场失球率……
🧪
原则:样本外有效才采用
全局校准因子 c=1.0323 在样本外只改善 0.3% LogLoss、Top-1/RPS 不变 —— 收益在噪声内,按原则放弃。每个版本都以 walk-forward 数字说话。

一场比赛,从情报到复盘

README 里的完整工作流:赛前联网核实情报,算法给出概率,一条命令出 PDF 报告;赛后复盘引擎自动提取教训写回因子库,下个版本自动应用 —— 一个自我进化的闭环。

01
联网核实情报
WebSearch 查阵容/首发、伤情、赔率与历史交锋 —— 比如 M39 西班牙 vs 沙特,先确认亚马尔、佩德里健康。
02
D&C MLE 估计 xG
每队 attack/defense + 主场加成 γ=0.233 + 时间衰减 half-life=730 天,317 队拟合 0.6 秒,输出双方期望进球。
03
5 种分布生成比分矩阵
Dixon-Coles τ / ZIP / Bivariate / Poisson / NB 生成全场比分概率,聚合出胜平负三向概率与 Top-5 比分。
04
LLM 战术因子叠加
Claude API 把新闻与伤情转成因子 JSON(PRECISE/REALTIME/GENERAL/SPECULATIVE),再翻译成 xG 偏移叠加进矩阵。
05
一键出 PDF 报告
预测 → Markdown 报告 → HTML → Playwright 渲染 PDF(match_pdf_generator.py 统一模板),一场一份完整赛前分析。
06
赛后复盘写回因子库
真实结果出来后 review_engine.py 自动提取新因子,更新 lessons.json 并生成下一版因子配置,持续自我进化。

五种分布,一张成绩单

49,417 场训练、同一切片 n=1,000 实测(v10.1 重跑):没有「万能分布」,各有分工 —— Poisson 的 Log-Loss 最低,Dixon-Coles 的 Top-3 最高,Negative Binomial 则被实测证伪、明确标注不适用。

方法论文出处Top-1Log-Loss定位
Poisson 基线Maher 198210.10%3.2459⭐ Log-Loss 最低;换 MLE xG 后 Top-1 → 15.70%
Dixon-Coles τDixon & Coles 19979.30%3.2488⭐ Top-3 最高(33.60%),低比分 τ 修正
Bivariate PoissonKarlis & Ntzoufras 20039.10%3.2753建模两队进球相关性
Zero-Inflated PoissonLambert 19927.90%3.31630-0 修正
Negative BinomialBoshnakov 20170.00%14.17❌ 实测不适用(预测 12.45 球 vs 实际 2.58)
γ = 0.233
主场加成参数,D&C 原文 MLE 拟合结果
730 天
时间衰减 half-life,365/548/730 三档 walk-forward 对比后由数据选定
1.0 → 0.5
赛事分级权重:大赛 1.0 / Nations League 0.9 / 预选赛 0.85 / 其他 0.7 / 友谊赛 0.5
19,363 / 317
近 20 年比赛场数 / 拟合球队数,L-BFGS-B + 解析梯度,单次拟合 0.6s

复现命令:python3 -m algorithms.devine.dc_mle --walkforward 5000 · python3 -m algorithms.devine.full_comparison --xg-source mle

最可能几比几

比分预测矩阵模拟器:选两支国家队(或直接拖 xG 滑块),浏览器实时跑 Poisson / Dixon-Coles / ZIP 三种算法,渲染 10×10 比分概率热力矩阵 + Top-5 比分 + 胜平负三向概率。

Devine · 比分预测引擎 v11(演示)
🏠 主队(主场加成)
VS
✈️ 客队
⚽ 主队 xG(期望进球):1.70
🥅 客队 xG(期望进球):1.00
🧮 算法切换
🔥 比分概率热力矩阵(行=主队进球,列=客队进球)
低概率 高概率
🏆 Top-5 最可能比分
📈 胜 / 平 / 负 三向概率
📋 回测成绩单(walk-forward 零泄漏)
15.70%
精确比分 Top-1 命中率
59.9%
胜方预测准确率(n=5,000)
49,417
国际比赛训练数据(1872-2026)

算法逻辑:P(X=k)=λ^k·e^(−λ)/k!,10×10 截断后归一化;Dixon-Coles τ 在 (0,0)(1,0)(0,1)(1,1) 四格按 ρ=−0.10 修正;ZIP 对 0-0 加权 ω=0.05。与 Skill 内引擎同源。

⚠️ 本系统仅供研究学习使用,不构成任何投资建议。投注有风险。

真实预测报告

下面就是这套系统的一次真实产出:英超第 38 轮赛前预测报告 PDF。它不是示意图,而是端到端流水线跑出来的成品 —— 联网搜索最新资讯(伤情/首发)→ 主算法预测 → 生成 Markdown → 渲染 HTML → Playwright 导出 PDF,一条命令完成。

EPL_Matchweek38_Predictions.pdf · 项目真实产出

流水线对应源码:reports/ 目录按比赛日归档(命名规范 M{id}_*_v{版本}.pdf),模板由 scripts/match_pdf_generator.py 统一生成,PDF 由 Playwright 渲染。

当前进度

模块状态说明
v11.0 D&C MLE 引擎已完成walk-forward n=5,000 达标,14 个新测试
真实数据源接入进行中ApiFootball / ESPN 已接入,clubelo 待网络首跑
地基修复 v10.1已完成import 断裂 + 数据泄漏 + 真实基线
数据清理 v10.2已完成football.db 去重,释放 ~2.75GB
测试体系已完成178 passed / 0 failed
49,417
国际比赛训练数据(1872-2026)
15.70%
精确比分 Top-1 命中率
59.9%
胜方预测准确率(n=5,000)
0.6 秒
317 队 MLE 拟合
← 返回产品矩阵