用途:对新的或尚未信任的体育数据表做探索性分析,在特征工程或首次建模前完成一次结构化体检,避免把数据问题误判为模型问题。适用时机包括行粒度、键、覆盖、缺失或基准率需要核查,以及模型结果异常疑似源于数据结构时。它不替代泄露终审(leakage-audit)、特征构造(feature-rules)和来源选择(data-sources)。
主要能力:用 workflow 逐项检查——定义单行含义(比赛、球队-比赛、球员-比赛、回合、投球或事件)、统计行列数、检验自然键唯一性与每场比赛行数、清点赛季与周次日期缺口、按赛季统计球队球员数量并检查 ID 变化与连接失败、按赛季/来源/角色/完成状态度量缺失、检查目标与基准率及不可能值、按主场客场等预声明分组切片、识别规则与赛程等结构性断点、标记预测时点 T 不可用字段。带两个脚本:coverage_table.py 生成覆盖表,panel_report.py 读取 CSV、Parquet、JSON、JSONL、NDJSON,输出机器可读报告,决策为 GO(status 0)、REPAIR(status 1)、STOP(status 2)。
使用方式:先记录问题、目标、预测时点 T、声称的行粒度与键、来源与检索时间、请求周期和纳入总体;粒度或 T 不明确先解决。命令示例:python /path/to/eda-sports/scripts/coverage_table.py --input games.csv;python /path/to/eda-sports/scripts/panel_report.py --input games.parquet --out data/eda.json。列名不符时用映射参数(--season-col、--game-col、--team-col、--home-col、--outcome-col)显式指定,不要猜测缺失列。panel_report 依赖 pandas,Parquet 还需 pyarrow 或 fastparquet。
适用场景:赛前/赛中体育建模前的数据审查、多次抓取或供应商改版后的数据核对、赛季拼接前的断点检查。
限制:报告只覆盖文档化的 EDA 判断;每场比赛必须恰好两条不同球队行且恰一条主场行,自然键为空或 (game, team) 重复则返回 STOP,缺失结果返回 REPAIR。GO 仍不代表特征时间安全,需另行做时间与泄露审查。若粒度错误或键存在无法解释的重复,应在建模前停止。具体收费、价格与平台支持暂未提供。