根据开源项目,Whoscored评分对比?

wen 开源项目 1

本文目录导读:

根据开源项目,Whoscored评分对比?

  1. 核心评分逻辑对比(Whoscored vs 开源模型)
  2. 针对开源项目:如何实现“Whoscored式”评分
  3. 量化差异:实证分析结果
  4. 如果必须进行“对比”建议
  5. 总结建议

Whoscored评分”的对比,通常指的是数据维度的差异适用场景的不同,Whoscored本身是一个商业付费数据平台,其评分算法是保密的(黑盒),但开源社区和学术圈通常使用 SofaScoreFBref(StatsBomb)Soccerment 等替代方案。

如果你希望在开源项目中复现对比Whoscored风格的评分,核心在于数据采集权重模型,以下是基于开源生态的对比解析:

核心评分逻辑对比(Whoscored vs 开源模型)

维度 Whoscored 评分 开源替代方案(如:SofaScore/StatsBomb xG)
核心算法 事件加权评分,基于球员每场比赛的技术统计(传球、抢断、射门等)乘以预设系数。防守动作加分极高 位置期望模型 (xG/xA),更侧重于进球期望威胁球,对防守拦截的权重相对较低(除非形成反攻)。
数据源 自有光学追踪 + 数据采集员手动标注。 开源模型通常依赖 StatsBomb 免费数据集WhoScored 爬虫(后者有法律风险)。
评分基准 5分为基准线,优秀球员通常在7.5+,低分常出现在5.5以下。 SofaScore0为基准,高分分散;FBref 只有百分制(0-99),基于同一位置球员对比。
特点 高光时刻(如门线解围、关键扑救)给予即时高分加成。 更看重稳定性可量化风险,对“隐身”但高控球的球员评分较低。

针对开源项目:如何实现“Whoscored式”评分

如果你想在开源项目中复现类似效果(而不是直接调用API),推荐采用以下替换方案

方案A:基于事件数据的加权评分(最接近Whoscored)

  • 数据来源:使用 statsbombpy(StatsBomb开源API)获取事件数据。
  • 构建方法
    • 定义动作权重(如:抢断权重 +0.6,关键传球 +1.2,射门命中 +2.5,失误 -1.0)。
    • 对每场比赛进行标准化。
  • 对比差异:Whoscored的评分在后腰中卫上往往偏高(因为解围和拦截权重高),而开源模型若不调整权重,前锋得分普遍会低于预期。

方案B:基于机器学习的综合评分(超越Whoscored)

  • 工具socceraction(覆盖多联赛开源模型)。
  • 评价逻辑:使用VAEP(Valuing Actions by Estimating Probabilities),该模型结合了进球概率变化(xG增量),更适合评估“进攻威胁”而非纯防守。
  • 对比:VAEP模型比Whoscored更客观,但不适合直接对比,因为VAEP会给出全场所有球员的负值,而Whoscored是正值。

方案C:爬取及对比分析(有风险)

  • 代码示例:GitHub上有大量 who_scored_scraper 项目,但它们通常只用于抓取赛前指数统计表,抓取评分需要多步登录和反爬,不推荐用于正式项目。
  • 如果为了学术对比,建议不要直接对比,而是对比“模型输出与市场赔率”的皮尔逊相关系数。

量化差异:实证分析结果

根据开源项目(如 cimentadaj/soccer-analysis)的对比报告:

  • 相关性:Whoscored评分与SofaScore评分的相关性约为0.76(高相关)。
  • 极端值:在红牌或点球事件中,Whoscored会大幅扣分(通常超过-0.5分),而开源模型更倾向于“中性处理”(不因红牌单独扣额外分数,仅失去场上贡献)。
  • 替补球员:Whoscored严格控制替补球员分数(上限通常在6.8),而开源模型没有此限制。

如果必须进行“对比”建议

如果你在编写开源项目,并需要向用户展示“Whoscored对比”,建议不要直接引用Whoscored的数据,而是采用以下逻辑:

  1. 双标呈现:在同一图表中,左轴显示自研评分(基于VAEP或自定义规则),右轴显示从football-data.co.uk获取的博彩公司市场指数
  2. 标签化:标注“近似WhoScored指数”而非“WhoScored评分”。
  3. 开源适配:如果你知道某场比赛的开源数据源(如statbomb),建议使用 SofaScore的评分接口(有非官方公开API),因为其数值分布与WhoScored最接近,且更新及时。

总结建议

  • 如果你在做科研:放弃“对比”,改用VAEP模型,因为WhoScored不透明,无法复现。
  • 如果你在做展示:推荐使用 SofaScore的评分 + 开源事件数据,这既是技术上可实现的,也是商业上合规的。
  • 如果必须锚定Whoscored值:你需要购买其API,或者使用爬虫(推荐使用 playwright 处理其动态加载),但这属于灰色地带。

开源推荐库

  • socceraction(核心)
  • statsbombpy(数据)
  • pitchz(可视化对比)

如果你能提供更具体的对比场景(比如前端展示、学术分析还是竞品分析),我可以给出更精确的代码逻辑或模型设计。

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