实用脚本怎么看两队的中场控制力对比?

wen 实用脚本 1

足球比赛中场控制力对比的分析脚本思路

看两队中场控制力对比,可以从数据脚本 + 指标框架两个层面入手,下面给你一套可落地的分析框架和示例脚本。

实用脚本怎么看两队的中场控制力对比?


核心指标体系(先定"看什么")

中场控制力本质是"谁能把球权留在自己脚下、并把球推进到危险区域",可拆成四类指标:

维度 具体指标 说明
控球 控球率、传球次数、传球成功率 基础盘
推进 向前传球占比、 progressive passes、进入进攻三区次数 能否往前送
压迫/反抢 PPDA(防守动作/对方传球)、中场抢断、拦截、夺回球权次数 丢球后能否抢回
质量 中场球员xA(预期助攻)、关键传球、带球推进距离 控制是否转化为威胁

关键:单看控球率会骗人(弱队摆大巴也能有控球),要控球 + PPDA + 推进三者结合看。


脚本实现(Python 示例)

假设你有事件数据(如 StatsBomb / Opta 格式),核心逻辑如下:

import pandas as pd
def midfield_control(events, team, pitch_length=105):
    df = events[events['team'] == team]
    # 1. 控球与传球
    passes = df[df['type'] == 'Pass']
    pass_count = len(passes)
    pass_acc = passes['pass_outcome'].isna().mean()  # 未失败=成功
    # 2. 向前推进(传球终点比起点更靠近对方球门)
    passes['progress'] = passes['end_x'] - passes['x']
    progressive = (passes['progress'] > 10).sum()   # 推进>10米的传球
    # 3. 进入进攻三区(x > 2/3 场长)
    final_third = (passes['end_x'] > pitch_length * 2/3).sum()
    # 4. 反抢/防守(中场区域)
    mid_zone = df[(df['x'] > pitch_length/3) & (df['x'] < pitch_length*2/3)]
    tackles = (mid_zone['type'] == 'Tackle').sum()
    interceptions = (mid_zone['type'] == 'Interception').sum()
    recoveries = (mid_zone['type'] == 'Ball Recovery').sum()
    return {
        '传球数': pass_count,
        '传球成功率': round(pass_acc, 3),
        '向前传球(>10m)': progressive,
        '进入进攻三区': final_third,
        '中场抢断': tackles,
        '中场拦截': interceptions,
        '中场夺回球权': recoveries,
    }
# 对比两队
home = midfield_control(events, 'Team A')
away = midfield_control(events, 'Team B')
comparison = pd.DataFrame({'主队': home, '客队': away})
comparison['差值'] = comparison['主队'] - comparison['客队']
print(comparison)

PPDA 单独算(压迫强度,越低压迫越强):

def ppda(events, defending_team, opp_team):
    # 对方在后场(自家2/3区域)的传球数
    opp_passes = events[(events['team']==opp_team) & 
                        (events['type']=='Pass') &
                        (events['x'] < 70)].shape[0]
    # 防守方在该区域的防守动作
    def_actions = events[(events['team']==defending_team) &
                         (events['type'].isin(['Tackle','Interception','Foul','Pressure'])) &
                         (events['x'] < 70)].shape[0]
    return round(opp_passes / max(def_actions,1), 2)

没有事件数据时,可用免费替代:FBref(soccerdata 库)、Understat、Wyscout 公开数据,或 API-Football。


怎么看结果(解读要点)

  1. 控球率高 + PPDA低 + 推进多 → 真正掌控中场(压制型)
  2. 控球率高 + PPDA高 + 推进少 → 无效控球(倒脚型)
  3. 控球率低 + 夺回球权多 + 向前传球多 → 高效反击型中场
  4. 中场抢断/拦截高但传球成功率低 → 破坏型中场,控制力弱

建议可视化:把两队指标做成雷达图(控球/推进/压迫/质量四个轴),一眼看出风格差异。


进阶(可选)

  • 用 xT(expected threat) 或 VAEP 衡量中场传球的实际威胁增量,比单纯传球数更准
  • 按中场球员位置(6号/8号/10号)细分,看是哪类中场在主导
  • 滚动窗口(如每15分钟)看控制力随时间变化,识别体能/换人影响

需要的话,我可以帮你:

  • 按你手头的数据格式(StatsBomb/Wyscout/CSV)改写脚本
  • 生成雷达图对比的可视化代码
  • 给一份现成的指标对照表模板

你现在的数据源是什么?

友情链接

欧易欧易欧易欧易欧易欧易欧易欧易

上一篇这个实用脚本怎么看待数据统计的差距?

下一篇当前分类已是最新一篇

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

友情链接攻略窝 · 礼包窝 · 配置窝 · 换算窝 · 算法窝 · 查文窝 · 手册窝 · 问答窝 · 全文搜 · 手册库
相关站点礼包窝 · 查文窝