本文目录导读:

在开源项目里看双方射门转化率差异,核心思路一般分三步:找到「射门数」和「进球数」→ 按球队分组 → 计算 进球/射门 并对比,不过具体怎么看,取决于你用的是哪个项目,我先给你通用的判断方法,再按几种常见项目类型说明。
先明确「射门转化率」的定义
射门转化率 = 进球数 / 射门数 × 100%
有些项目会细分:
- 射正转化率 = 进球 / 射正
- 预期进球转化率 = 进球 / xG(衡量把握机会能力)
看差异时,最好先确认项目里用的是哪一种,否则容易误读。
通用查看步骤(适用于大多数足球数据项目)
-
定位数据表/接口
- 找
shots、goals、matches、teams这类表或 API 字段。 - 关键字段通常是:
match_id、team_id、shots、shots_on_target、goals、xg。
- 找
-
按比赛 + 球队分组聚合
SELECT match_id, team_id, SUM(goals) AS goals, SUM(shots) AS shots, SUM(goals) * 1.0 / SUM(shots) AS conversion_rate FROM shots GROUP BY match_id, team_id; -
把主客队并到同一行对比
SELECT home.team_id AS home_team, away.team_id AS away_team, home.conversion_rate AS home_conv, away.conversion_rate AS away_conv, home.conversion_rate - away.conversion_rate AS diff FROM team_stats home JOIN team_stats away ON home.match_id = away.match_id WHERE home.team_id = matches.home_team_id AND away.team_id = matches.away_team_id; -
可视化/解读差异
- 差异 > 0:主队把握机会更好
- 差异很大但射门数少:可能是「高效但机会少」,不一定是碾压
- 结合 xG 看:转化率高于 xG 说明超常发挥或对方门将差
按项目类型具体看
| 项目类型 | 怎么看 |
|---|---|
| Web 可视化项目(如 football-data 看板) | 一般有「Match Stats」页,直接看 Shot Conversion 或 Goals per Shot 对比条 |
Python 分析库(如 soccerdata、statsbombpy) |
拉 events 数据,筛 Shot 事件,按 team 分组算 goal / shot |
| 数据库/SQL 项目 | 用上面的 SQL,在 shots 或 events 表里聚合 |
| API 项目(如 API-Football) | 取 statistics 接口里的 Total Shots 和 Goals,自己相除 |
| 机器学习项目 | 看模型输出的 xG 与实际进球对比,转化率差异 = 实际 - 预期 |
看差异时要避免的坑
- 样本太小:单场 3 脚射门进 2 个,转化率 67%,不能说明问题,要看赛季累计或多场滚动。
- 没区分射门质量:远射和禁区内射门价值不同,最好配合 xG。
- 把「射门多」等同于「强」:转化率低可能是浪射,也可能是对方门将神勇。
- 主客场/比分状态影响:领先方往往收缩,射门数和转化率都会变。
如果你能告诉我具体项目
- 项目名或 GitHub 链接
- 用的是 SQL / Python / 前端看板
- 你手上有什么数据(events?stats?)
我可以直接给你对应的查询语句或代码片段,帮你把双方转化率差异算出来并画图。
你用的是哪个开源项目?