5个免费足球开源数据集清单:如何用Soccer Analytics Handbook快速获取StatsBomb与Metrica数据
【免费下载链接】analytics-handbookGetting started with soccer analytics项目地址: https://gitcode.com/gh_mirrors/an/analytics-handbook
做足球数据分析,最大的门槛往往不是代码,而是"去哪找数据"。Soccer Analytics Handbook(足球分析手册)是一份免费、面向新手的足球数据分析教程,本文整理了 5 个免费足球开源数据集清单,并教你用它几行 Python 代码快速拉取 StatsBomb 事件数据和 Metrica 追踪数据,零基础也能跑出第一张球场图。
📦 5个免费足球开源数据集清单一览
| 数据集 | 数据类型 | 内容规模 | 适合做的分析 |
|---|---|---|---|
| StatsBomb Open Data | 事件数据 | 英超 2016-17、欧冠 2019-20、世界杯 2022 等整赛季事件流 | 传球网络、射门分布、热力图 |
| Metrica Sports | 完整追踪数据 | 2 场公开比赛,每场 200 万+ 坐标点 | 跑动轨迹、高强度冲刺、拦截时间 |
| SkillCorner | 广播追踪数据 | 9 场从转播视频提取的追踪数据 | 球员站位、空间分析 |
| Last Row(Friends of Tracking) | 追踪类数据 | 教学用途的追踪数据 | 追踪数据入门练习 |
| American Soccer Analysis | 事件数据 | 可配合itscalledsoccer库获取 | 联赛级统计与建模 |
💡 一个关键概念:单场事件数据只有约 2000~3000 个事件,而单场追踪数据超过 200 万个坐标测量值。这就是追踪数据更珍贵、也更适合做移动与防守压迫分析的原因。
⚡ 最快获取步骤:3 步从 Clone 到跑起来
第 1 步 · 克隆项目
git clone https://gitcode.com/gh_mirrors/an/analytics-handbook第 2 步 · 安装依赖
项目 2023 年重构后不再需要任何自定义模块,全部依赖都是 pip 可安装的标准包:
pip install -r requirements.txt核心就三个库(见requirements.txt):
statsbombpy:StatsBomb 官方接口,拉取事件数据mplsoccer:绘制球场图、热力图的"游戏级"绘图库kloppy:追踪数据一站式接口,Metrica 数据靠它加载
第 3 步 · 打开 Notebook
全部教程集中在根目录的soccer_analytics_handbook.ipynb一个文档里,用 Jupyter 或 VS Code 打开后即可自上而下运行,每个代码块都配有逐步解释。
🏆 快速获取 StatsBomb 事件数据(以世界杯 2022 为例)
Handbook 的示例选用了 2022 世界杯数据(competition_id=43、season_id=106),只需三步拿到完整事件流:
- 取赛程:
sb.matches(competition_id=43, season_id=106),返回一个 Pandas DataFrame - 选比赛:按
competition_stage == "Final"过滤,取出决赛的match_id - 拉事件:
sb.events(match_id=match_id),一次拿到该场比赛全部事件
之后配合mplsoccer即可出图,Notebook 里给出了三个完整范例:
- 传球图:筛选
type == "Pass",取起点与落点坐标连线 - 射门图:筛选
type == "Shot",按位置绘制 - 热力图:用
Pitch.kdeplot画核密度估计,直观看到球队活动区域
🏃 快速获取 Metrica 追踪数据(kloppy 一键加载)
Metrica 开放的是业内首批公开的完整追踪数据,用kloppy一行代码加载:
from kloppy import metrica dataset = metrica.load_open_data(match_id=1, coordinates="metrica") df = dataset.to_df() # 直接转成 Pandas 表格查看- 采样率25 帧/秒,每帧记录双方 22 名球员 + 球的坐标
df.head()即可看到数据结构,上手成本极低
Notebook 的 Tracking Data 章节还在此基础上演示了进阶玩法:绘制球员跑动路径、检测高强度冲刺、贝塞尔曲线拟合、置信区域、以及经典的Time to Intercept(TTI)防守压迫面分析。
🧭 Handbook 教程结构速览
| 章节 | 核心内容 | 关键库 |
|---|---|---|
| Visualization | 传球图 / 射门图 / 热力图三种球场图 | mplsoccer |
| Clustering | K-Means 与高斯混合模型(GMM)给传球位置聚类 | scikit-learn |
| Model Pass Difficulty | XGBoost 传球难度分类器 + ROC/AUC 评估 | xgboost |
| Tracking Data | 跑动路径、冲刺、TTI 拦截面 | kloppy、bezier |
📚 延伸阅读:
README.md的 "Soccer Analytics Research" 与 "Resources" 章节整理了必读论文、博客和 Python 库清单,适合进阶时对照学习。
🎯 新手建议的学习路线
- 先跑Visualization章节,10 分钟建立"坐标 → 球场图"的直观感受
- 再做Clustering,理解"从数据里找结构"的思路
- 喜欢机器学习的,直接挑战Pass Difficulty建模
- 最后攻Tracking Data:数据量最大,但概念最硬核
💡 常见问题 FAQ
需要付费购买数据吗?不需要。清单中的 5 个数据集均为官方免费开放,Notebook 示例仅使用 StatsBomb 与 Metrica 的公开数据。
事件数据和追踪数据该先学哪个?新手建议从事件数据入手:数据轻、出图快、概念清晰;追踪数据留给想深入移动分析、防守压迫的读者。
代码跑不起来怎么办?确认使用 Python 3.7+,并按requirements.txt中的版本安装依赖;Notebook 开头的 Setup 单元格也内置了同样的pip install命令,可对照检查。
【免费下载链接】analytics-handbookGetting started with soccer analytics项目地址: https://gitcode.com/gh_mirrors/an/analytics-handbook
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考