综合python案例,哪队控球率会占优?

wen python案例 4

综合Python案例:哪队控球率会占优?

下面我用一个完整的Python案例来演示如何分析足球比赛中哪队控球率占优,思路是:综合多维度数据(传球、射门、跑动、对抗等),计算一个"控球占优指数"。

综合python案例,哪队控球率会占优?


案例背景

假设有一场比赛:A队 vs B队,我们采集了如下数据:

指标 A队 B队 权重
传球成功率(%) 88 79 25
传球次数 620 410 20
控球时间(分钟) 58 32 25
前场传球占比(%) 42 30 15
成功过人次数 12 6 15

说明:控球率不只是"控球时间",还要看传控质量和推进能力。


Python代码实现

import pandas as pd
import numpy as np
# 1. 原始数据
data = {
    "指标": ["传球成功率(%)", "传球次数", "控球时间(分钟)", "前场传球占比(%)", "成功过人次数"],
    "A队":  [88, 620, 58, 42, 12],
    "B队":  [79, 410, 32, 30, 6],
    "权重": [0.25, 0.20, 0.25, 0.15, 0.15]
}
df = pd.DataFrame(data)
# 2. 归一化(每个指标除以两队之和,得到占比)
df["A占比"] = df["A队"] / (df["A队"] + df["B队"])
df["B占比"] = df["B队"] / (df["A队"] + df["B队"])
# 3. 加权计算控球占优指数
df["A加权"] = df["A占比"] * df["权重"]
df["B加权"] = df["B占比"] * df["权重"]
A_score = df["A加权"].sum()
B_score = df["B加权"].sum()
print(df[["指标", "A占比", "B占比", "权重", "A加权", "B加权"]])
print(f"\nA队控球占优指数:{A_score:.3f}")
print(f"B队控球占优指数:{B_score:.3f}")
# 4. 判定
if A_score > B_score:
    print(f"\n结论:A队控球占优,优势 {(A_score-B_score)*100:.1f}%")
else:
    print(f"\n结论:B队控球占优,优势 {(B_score-A_score)*100:.1f}%")

运行结果

       指标     A占比     B占比    权重    A加权    B加权
0  传球成功率(%)  0.527   0.473  0.25  0.132   0.118
1     传球次数   0.602   0.398  0.20  0.120   0.080
2  控球时间(分钟)  0.644   0.356  0.25  0.161   0.089
3  前场传球占比(%) 0.583   0.417  0.15  0.087   0.063
4    成功过人次数  0.667   0.333  0.15  0.100   0.050
A队控球占优指数:0.600
B队控球占优指数:0.400
A队控球占优,优势 20.0%

可视化(可选)

import matplotlib.pyplot as plt
# 中文字体设置
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(8,5))
x = np.arange(len(df["指标"]))
plt.bar(x-0.2, df["A占比"], width=0.4, label="A队", color="steelblue")
plt.bar(x+0.2, df["B占比"], width=0.4, label="B队", color="tomato")
plt.xticks(x, df["指标"], rotation=15)
plt.ylabel("占比")"A队 vs B队 控球相关指标对比")
plt.legend()
plt.tight_layout()
plt.show()

通过加权综合五个控球相关指标:

  • A队控球占优指数 = 0.600
  • B队控球占优指数 = 0.400

✅ A队控球率会占优,综合优势约20%

主要原因:

  1. 传球次数多(620 vs 410),说明球权掌握在A队脚下;
  2. 控球时间长(58 vs 32分钟),直接反映控球率;
  3. 前场传球占比高,说明进攻性控球更强;
  4. 传球成功率和过人次数也全面领先。

步骤 方法
数据采集 多维度指标
归一化 除以两队之和
加权合成 权重×归一化值
判定 比较加权总分
可视化 柱状图/雷达图

💡 扩展思路:如果把权重换成机器学习模型(如逻辑回归)训练出的系数,结果会更客观,也可以用雷达图直观展示两队综合能力。

需要我进一步用雷达图或真实比赛数据(如opta/fbref)做一次实战分析吗?

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