Dataset quality auditor
Skill findscripter/everything-skills/03-data/dataset-quality-auditor
当需要评估数据集健康度、在建模或上线前查出隐藏质量问题时使用;做完整性/一致性/有效性/唯一性/时效性五维审计,产出数据质量分(DQS 0-100)与按影响排序的修复方案;不适用于设计数据库 schema、搭建 ETL 管道、或校验财务模型输出。触发词:数据质量、数据审计、缺失值、异常值离群点、DQS、数据画像From its SKILL.md
npx -y skills add findscripter/everything-skills --skill dataset-quality-auditorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.3 KB, ~2.7k tokens by cl100k_base, as published. Nobody here has run it
何时使用
适用于:在数据进入模型、报表或决策前,系统性评估其健康度,挖出那些"不报错却悄悄污染下游"的质量问题,并给出按影响排序的修复方案。典型请求:
- "帮我画像/审计这份数据集" → 输出完整 DQS 报告 + 各列问题清单。
- "X 列出了什么问题?" → 定向审计该列的缺失、异常、类型、值域违规。
- "这份数据能用来建模吗?" → 输出建模就绪检查清单(逐项 pass/fail)。
- "帮我清洗这份数据" → 输出按优先级排序的修复方案,每个问题配具体变换。
- "给关键列配监控" → 输出阈值配置 + 告警检查清单。
- "和上个月比有没有变化?" → 输出分布对比报告,标记漂移。
不该用(负边界):
- 要设计或优化数据库 schema/范式 → 用数据库设计类技能。
- 要搭建 ETL 管道本身 → 用工程类技能。
- 数据是财务模型的输出、需校验模型逻辑 → 用财务分析类技能。
步骤
按场景选其一切入。
模式 1 — 完整审计(全新数据集)
- 画像:跑
data_profiler.py,拿到形状、类型、完整性、分布与 DQS。 - 缺失值:跑
missing_value_analyzer.py,把缺失机制分类为 MCAR/MAR/MNAR。 - 异常值:跑
outlier_detector.py,用 IQR / Z-score / 修正 Z-score 标记离群点。 - 跨列检查:核对引用完整性、重复行、逻辑约束(如
start <= end)。 - 打分与报告:给出 DQS 并产出修复方案,问题按 严重度 × 波及面 排序。
模式 2 — 定向排查(怀疑具体列/指标/管道环节)
- 先问三连:什么坏了、什么时候开始、上游改了什么?
- 只对可疑列跑相应脚本。
- 有已知良好基线时,对比分布。
- 追到根因(源系统 / ETL 变换 / 摄入延迟)。
模式 3 — 持续监控搭建(活管道)
- 圈定驱动核心指标的 5–8 个关键列。
- 定阈值:可接受空值率、离群率、值域。
- 用
data_profiler.py --monitor生成监控清单与告警逻辑。 - 按摄入节奏排程检查。
指令
脚本默认读 CSV,统一用 --format json 可输出供下游使用。
# 画像:形状/类型/空值率/基数/分布 + DQS
python3 scripts/data_profiler.py --file data.csv
python3 scripts/data_profiler.py --file data.csv --columns col1,col2,col3
python3 scripts/data_profiler.py --file data.csv --format json
python3 scripts/data_profiler.py --file data.csv --monitor # 生成监控阈值
# 缺失值:体量/模式/机制(MCAR/MAR/MNAR) + 逐列填补建议
python3 scripts/missing_value_analyzer.py --file data.csv
python3 scripts/missing_value_analyzer.py --file data.csv --threshold 0.05
python3 scripts/missing_value_analyzer.py --file data.csv --format json
# 异常值:多方法 + 业务影响判断
python3 scripts/outlier_detector.py --file data.csv
python3 scripts/outlier_detector.py --file data.csv --method iqr
python3 scripts/outlier_detector.py --file data.csv --method zscore --threshold 2.5
python3 scripts/outlier_detector.py --file data.csv --format json
DQS(0–100,五维加权,报告必须置顶呈现)
| 维度 | 权重 | 衡量什么 |
|---|---|---|
| 完整性 Completeness | 30% | 关键列的空值/缺失率 |
| 一致性 Consistency | 25% | 类型符合、格式统一、无混合类型 |
| 有效性 Validity | 20% | 值落在预期域内(范围、类别、正则) |
| 唯一性 Uniqueness | 15% | 重复行、重复键、冗余列 |
| 时效性 Timeliness | 10% | 时间戳新鲜度、相对源系统的延迟 |
评分阈值:🟢 85–100 可上生产;🟡 65–84 带书面注意事项可用(限探索分析);🔴 0–64 使用前必须修复。
异常检测公式(按分布选方法)
- IQR(默认,非参数稳健):
x < Q1 − 1.5×IQR或x > Q3 + 1.5×IQR。 - Z-score:
|x − μ| / σ > 阈值(常用 3.0)。仅当近似正态且污染 <5% 时用——均值/标准差本身受离群点拖累。 - 修正 Z-score(Iglewicz-Hoaglin,偏态首选):
M = 0.6745 × |x − median| / MAD,M > 3.5即离群。注意离散且单值主导列 MAD 可能为 0。
示例
报告统一用四段式结构:
结论 Bottom Line — DQS: 61/100 — 上生产前必须修复。 发现 What — 按 严重度×波及面 排序的具体问题。 影响 Why It Matters — 每个问题的业务/分析后果。 行动 How to Act — 具体、有序的修复步骤。
缺失值修复速查(务必在 null% >1% 时加 col_was_null 指示列,保留"曾为空"这一可能有预测价值的信息):
| 空值率 | 建议动作 |
|---|---|
| <1% | 数据集大可删行,或用中位数/众数填补 |
| 1–10% | 填补 + 加二值指示列 col_was_null |
| 10–30% | 谨慎填补,查根因,书面记录假设 |
| >30% | 交业务评审,勿盲目填补,考虑删列 |
去重:先与数据 owner 确认唯一键;事件数据用 keep='last'(最新状态胜出),缓变维表用 keep='first'。
注意事项
主动风险触发器——一旦发现信号,不必等用户问,直接抛出:
- 隐形空值:空值被编码成
0、""、"N/A"、"null"字符串;不抓出来,完整性指标全是假的。 - 泄漏时间戳:未来日期、早于系统上线的日期、时区错配——会污染时序 join。
- 基数爆炸:上千唯一值的自由文本伪装成类别字段,会悄悄撑爆 one-hot 编码。
- 重复主键:PK 不唯一会让下游 join 和聚合全部失效。
- 分布漂移:当前分布相对基线偏离 >2σ(均值/标准差),预示上游管道变更。
- 相关性缺失:空值扎堆在某时间段/用户段/地区——是 MNAR 证据,不是随机丢失。
填补安全红线(按机制决定能否填):MCAR 可放心填(均值/中位数);MAR 须用纳入相关观测变量的模型条件填补;MNAR 不可填,填补必引入系统性偏差,须上报业务 owner。
证据分级 + 人审:每条发现打置信标签——🟢 已核实 / 🟡 很可能 / 🔴 推测(待业务确认)。绝不在未经人工确认下自动修复 🔴 级发现。
其他静默杀手:去尾空格("active " ≠ "active")、时区裸时间戳、UTF-8/Latin-1 编码错乱、数值被存成科学计数法字符串、上游 lookup 字段悄悄新增类别导致旧代码丢行。
互见
- 问题根因在 schema 设计/范式 → 数据库设计类技能。
- 数据是 订阅/事件数据喂 SaaS KPI → SaaS 指标类技能。
- 数据涉及 财务报表/会计数字 → 财务分析类技能。
- 审计 产品事件数据(漏斗、会话、留存)→ 产品分析类技能。
- 质量问题是系统性的、需当技术债跟踪 → 技术债跟踪类技能。
采编自 alirezarezvani/claude-skills(MIT 许可证)。理论依据:Rubin (1976) 缺失机制、Iglewicz-Hoaglin (1993) 异常检测、DAMA-DMBOK 与 ISO 8000 数据质量维度。
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.