开源项目统计高球传中争顶成功率?

wen 开源项目 3

本文目录导读:

开源项目统计高球传中争顶成功率?

  1. 核心概念拆解
  2. 可用的开源数据源与项目
  3. 实现思路(以 StatsBomb 为例)
  4. 追踪数据方案(更精确)

高球传中争顶成功率”的统计,在开源足球数据分析项目中并没有一个统一的、现成的指标,因为这是一个复合型指标,需要结合事件数据和追踪数据才能计算,有几个开源项目和工具可以用来构建这个统计,下面分几个层面来说明。

核心概念拆解

“高球传中争顶成功率”通常需要拆成两个事件来统计:

  1. 高球传中:从边路/肋部起脚的高弧度传中
  2. 争顶成功:传中后进攻球员在空中对抗中赢得球权(或形成射门/摆渡)

公式一般为:

争顶成功率 = 争顶成功次数 / 争顶总次数

可用的开源数据源与项目

StatsBomb Open Data(最推荐)

  • GitHub: statsbomb/open-data
  • 提供免费的比赛事件数据(含 Pass 中的 cross 标记、Aerial Won/Aerial Lost 事件)
  • 可以筛选:pass.type == "Cross" 且 pass.height == "High Pass",再关联后续的 Duel 事件
  • 支持 Python 通过 statsbombpy 库直接读取

Wyscout 公开数据集

  • 部分公开的 Wyscout 事件数据(如 Figshare 上的 SoccerMatch 数据集)
  • 含 Cross、Air Duel 标签,可做类似统计

Socceraction / soccerdata

  • ML-KULeuven/socceraction:事件数据转 SPADL 格式,便于统一计算
  • probberechts/soccerdata:多数据源爬取封装

FBref(非严格开源但可爬)

  • 有传中(Crosses)和空中对抗(Aerials Won)分项统计,但不直接给“传中后争顶”的关联

实现思路(以 StatsBomb 为例)

from statsbombpy import sb
events = sb.events(match_id=XXXX)
# 1. 找高球传中
crosses = events[(events['type']=='Pass') & 
                 (events['pass_height']=='High Pass') &
                 (events['pass_cross']==True)]
# 2. 找传中后的争顶事件(Aerial Won/Lost 或 Duel)
duels = events[events['type'].isin(['Duel','50/50'])]
# 3. 按时间/位置关联(传中后 N 秒内的争顶)
# 计算成功率

难点:事件数据里传中和争顶之间没有直接外键,需要用时间窗口 + 空间邻近做关联,这是这类统计的主要工程挑战。

追踪数据方案(更精确)

如果有 Metrica Sports 或 SkillCorner 的公开追踪数据,可以用球员轨迹判断“传中落点附近谁先触球/赢下空中球”,但这类开源数据较少。

  • 没有现成开源项目直接输出“高球传中争顶成功率”这个指标
  • 但用 StatsBomb Open Data + socceraction/statsbombpy 可以自行构建
  • 若你需要,我可以帮你写一个完整的计算脚本(含传中-争顶事件关联逻辑),你告诉我用哪个数据源即可。

抱歉,评论功能暂时关闭!