目录 / 文档-技术白皮书 / 06-EFT.WP.Core.DataSpec v1.0
I. 范围与目标
- 出统一 q_score 聚合口径与告警阈值。
- 给出分布漂移 drift 的计算与分层告警方案,覆盖数值、分类型与时空字段;对跨卷锚点 T_arr 的专项质量与漂移口径予以固化。
- 与实现绑定 I60 6 quality_metrics、I60 6 monitor_drift 对齐,形成可执行的 Mx-3/Mx-4 流程。
II. 术语、符号与依赖
- 质量样本与窗口:D、R、N = |R|、ts、[t0, t1]、Delta_t。
- 缺失标记:m ∈ {0,1},m=1 表示该字段可用。
- 契约测试集:tests = { test_k },每个 test_k 对应布尔判定或区间断言。
- 参考与新集:p(参考分布),q(新分布),bins = {b_i}。
- 跨卷锚点:gamma(ell)、d ell、n_eff(x,t)、c_ref、T_arr。
- 评价分:q_score ∈ [0,1]。
III. 公设(P68-*)
- P68-1 可度量公设:进入发布门控的每个数据域必须提供 completeness、validity、consistency、timeliness 四象限指标及 q_score。
- P68-2 窗口一致公设:质量与漂移的评估窗口必须与生产消费窗口一致,即使用同一 Delta_t 与 [t0, t1]。
- P68-3 量纲守恒公设:所有数值质量指标若参与方程,必须通过 check_dim(expr)。
- P68-4 漂移可追溯公设:drift 的所有输入(bins、p、q、平滑与拉普拉斯加噪 epsilon)须记录到 manifest。
- P68-5 到达时一致公设:涉及 T_arr 的质量与漂移需同时报告两口径差 delta_form,并与阈值 tol_Tarr 比较。
IV. 基础质量指标定义(S68-1)
- 完整性:
comp(field) = ( sum_{i=1..N} m_i ) / N。 - 合法性(基于契约 tests):
valid(field) = ( count( value_i 满足 tests ) ) / ( count( m_i=1 ) )。 - 一致性(跨字段或跨表约束):
consistency = 1 - ( violations / checks ),其中 checks 为执行的约束总数。 - 时效性(基于延迟阈值 SLA):
timely = ( count( ts_now - ts_i <= SLA ) ) / N。 - 数值精度(可选,存在参考或模型时):
- MAE = ( 1 / N_obs ) * sum | y - y_ref |。
- RMSE = sqrt( ( 1 / N_obs ) * sum ( y - y_ref )^2 )。
- MAPE = ( 100 / N_obs ) * sum | ( y - y_ref ) / max( |y_ref|, epsilon ) |。
- chi2 = r^T R r,其中 r = y - f(x; theta),R = diag(w)(见《Core.Errors》)。
V. 指标归一化与聚合(S68-2)
- 指标归一化到 [0,1]:
- 正向指标(越大越好)保持原值或截断:s = clip(metric, 0, 1)。
- 反向指标(越小越好)使用:s = 1 / ( 1 + metric / tau ),其中 tau 为容忍尺度。
- 复合质量分:
q_score = ( sum_{i} w_i * s_i ) / ( sum_{i} w_i ),w_i ≥ 0 且显式记录到 manifest.weights。 - 域内与域间聚合:
- 域内:按字段或表局部 q_score(field) → q_score(table)。
- 域间:按消费关键路径权重或访问频度进行二次聚合得到 q_score(domain)。
VI. 漂移度量(S68-3)
- 直方图 KL:
KL(p||q) = sum_i p_i * log( p_i / q_i ),使用拉普拉斯平滑 p_i' = (p_i + alpha) / (1 + alpha * |bins|)。 - Jensen-Shannon:
JSD(p, q) = 0.5 * KL(p||m) + 0.5 * KL(q||m),m = 0.5 * (p + q),JSD ∈ [0, log 2]。 - Wasserstein-1(一维连续):
W1(p, q) = ∫_0^1 | F_p^{-1}(u) - F_q^{-1}(u) | du,报告 W1 / IQR_ref 的无量纲版本。 - PSI(Population Stability Index,分类型或分箱):
PSI = sum_i ( q_i - p_i ) * log( q_i / p_i )。 - 缺失率漂移:
delta_miss(field) = comp_ref(field) - comp_new(field)。 - 临界值建议:
- JSD_norm = JSD / log 2,阈值分层见第 VIII。
- 数值字段优先 W1 / IQR_ref,分类型优先 PSI,概率分布优先 JSD。
VII. 窗口化与基线(S68-4)
- 基线集构造:
D_ref 取业务稳定期或上一个冻结发布的 [t0_ref, t1_ref],粒度为 Delta_t。 - 对比集:
D_new 为当前窗口 [t0, t1]。 - 时序稳健化:
对每个 field,在滚动窗口上计算 median 与 MAD,使用 |x - median| / (1.4826 * MAD) 对离群分箱降权。 - 采样一致性:
若 fs_new != fs_ref,需在相同 Delta_t 上重采样并声明 method。
VIII. 告警与门控
- 分层阈值(建议,可在 manifest.thresholds 覆盖):
- q_score:< 0.95(Warn),< 0.90(Error)。
- JSD_norm:> 0.10(Warn),> 0.25(Error)。
- W1 / IQR_ref:> 0.15(Warn),> 0.35(Error)。
- PSI:> 0.10(Warn),> 0.25(Error)。
- delta_miss(field):< -0.02(Warn),< -0.05(Error)。
- 门控规则:
进入冻结前,q_score >= q_min 且所有核心字段的漂移度量低于 Error 阈值;若出现 Warn,需人工批准或补充测试通过。 - 严重性映射:
Warn → 继续观测与降级服务;Error → 阻断发布或自动回滚上一个 tag。
IX. 跨卷锚点专项:T_arr 的质量与漂移
- 双口径一致性:
- T_arr_factored = ( 1 / c_ref ) * ( ∫_gamma n_eff d ell )。
- T_arr_general = ( ∫_gamma ( n_eff / c_ref ) d ell )。
- delta_form = | T_arr_factored - T_arr_general |,断言 delta_form <= tol_Tarr。
- 漂移维度:
n_eff 分布的 JSD_norm 与 W1 / IQR_ref;路径长度 L_gamma = ( ∫_gamma 1 d ell ) 的分布漂移;CRS 变更必须为 major(见第7章)。 - 质量门控:
若 delta_form 连续 k 个窗口超过 Warn,进入专项诊断;超过 Error,阻断发布。
X. 流程规范
- Mx-3 质量评估流程:
- 构建窗口 [t0, t1],对 D 进行 stream_records。
- 计算各字段 comp/valid/consistency/timely 与可用的数值精度指标。
- 归一化并按权重聚合为 q_score;更新 manifest.metrics。
- 与阈值比较并输出告警事件与建议处置。
- Mx-4 漂移评估流程:
- 以 D_ref 为基线,统一分箱或分位点。
- 计算 JSD/PSI/W1 与 delta_miss,形成 drift_report。
- 对超阈字段回写“根因提示”:sampling_change、seasonality、schema_change。
- 若含 T_arr,同步计算并记录 delta_form。
XI. 指标输出与清单
- 质量指标数据集 D_q(建议模式):
sid, tid|pid, ts, field, metric, value, window, method, notes。 - 漂移报告 D_drift:
field, measure ∈ {"JSD","W1","PSI","delta_miss"}, value, bins|quantiles, alpha|epsilon, ref_tag, new_tag。 - manifest 补充:
metrics.weights, metrics.thresholds, drift.method, drift.window, drift.smoothing。
XII. 实现绑定(I60 6 对齐)
- quality_metrics(ds:any) -> dict
返回 { field -> { comp, valid, consistency, timely, mae|rmse|mape|chi2?, s_norm, q_score_field } , q_score }。 - monitor_drift(ds_ref:any, ds_new:any, fields:list[str], method:str="KL") -> dict
method ∈ {"KL","JSD","W1","PSI"},返回 { field -> { measure, value, bins|quantiles } }。 - 约束:两个接口的采样、分箱与窗口策略必须在 manifest 保持一致并可复现。
XIII. 数值稳定与工程注意事项
- 小样本稳健性:当 N < N_min 时对分布度量降权或延后判定,记录 N_eff。
- 平滑与零频:所有基于对数的度量均采用 alpha > 0 的拉普拉斯平滑;日志记录 alpha。
- 归一尺度:W1 建议以 IQR_ref 归一,避免单位与尺度差异导致的误判。
- 相关性提示:多字段联合漂移可用 KL 在联合分箱上计算,但需警惕维度灾难,优先使用低维投影与条件漂移。
XIV. 输出与处置策略(执行摘要)
- 进入发布门控前必须提供:q_score、drift_report、阈值比对结果与处置建议。
- 处置字典:
- 采集侧退避与重采样(时效性不足);
- 合约修复与回填(合法性失败);
- 分箱与索引重建(一致性或漂移异常);
- 模型再训练与参数更新(数值精度或分布漂移显著);
- 回滚到上一个稳定 tag(Error 级触发)。
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/