目录文档-技术白皮书16-EFT.WP.Methods.Cleaning v1.0

附录D 质量与漂移度量


一句话目标:定义从采集到发布全过程的质量与漂移度量口径、计算式与告警阈值,使 q_score、drift、PSI、KS 等指标在批处理、流式与在线快照中可比、可审计、可回退。


I. 范围与对象

  1. 适用对象
    批处理快照、事件流滑动窗口、在线快照的清洗发布物与其 manifest。
  2. 输入与窗口
    参考窗口 W_ref = [ts_ref0, ts_ref1),当前窗口 W_now = [ts_now0, ts_now1),二者在 tau_mono 上评估,在 ts 上发布。
  3. 输出与约束
    • 输出指标集合 Q.* 与 DR.*,聚合分数 q_score ∈ [0,1]、drift ∈ [0,1],并在 contracts 中断言阈值。
    • 涉及时基时同时报告 offset/skew/J 与其上界。

II. 指标分层与命名

  1. 分层
    • 字段级:Q.field.*(k)、DR.field.*(k),其中 k 为字段名。
    • 数据集级:Q.ds.*、DR.ds.*,对字段级指标做加权或并联上界。
  2. 命名
    质量前缀 Q.*;漂移前缀 DR.*;时基相关以 timing.* 承载;到达时一致性以 arrival.* 承载。

III. 统计窗口与抽样

  1. 窗口定义
    • N_ref = count(W_ref),N_now = count(W_now),Delta_t = ts_now1 - ts_now0。
    • 事件流采用滑动窗口并行:W_ref 固定或指数衰减权;W_now 为最近窗口。
  2. 抽样与正则化
    • 若全量不可得,采用蓄水池抽样,样本量 n = min(N_now, n_max)。
    • 频数与分布估计中对空箱使用 epsilon > 0 平滑,默认 epsilon = 1e-6。

IV. 质量指标定义(字段级与数据集级)

  1. 完整性与缺失
    • Q.field.comp(k) = 1 - missing_ratio(k) = 1 - ( Σ m_k == 0 ) / N_now。
    • Q.ds.comp = ( 1 / |K| ) * Σ_k Q.field.comp(k)。
  2. 合法性与约束
    • Q.field.valid(k) = ( count(valid(k)) / N_now )。
    • Q.ds.valid = ( 1 / |K| ) * Σ_k Q.field.valid(k)。
  3. 唯一性与去重结果
    dup_ratio = ( dup_count / N_now ),Q.ds.unique = 1 - dup_ratio。
  4. 参照完整性
    orphan_ratio = ( orphan_fk / N_now ),Q.ds.fk = 1 - orphan_ratio。
  5. 量纲与单位
    Q.ds.dim = 1 若 check_dim(expr) 全通过,否则 Q.ds.dim = 0;或用 1 - ( violations / checks ) 连续化。
  6. 时效性与新鲜度
    fresh_age_s = ( ts_now1 - max(ts) ),Q.ds.fresh = max( 0, 1 - fresh_age_s / T_fresh_max )。
  7. 时基质量
    • timing.offset = offset,timing.skew = skew_ppm,timing.J = J_ms_p99;
    • Q.ds.timing = g_t( offset, skew_ppm, J_ms_p99 ),如 g_t = exp( - a1*|offset| - a2*|skew_ppm| - a3*|J_ms_p99| )。
  8. 到达时两口径一致性
    • arrival.delta_form = | ( 1 / c_ref ) * ( ∫ n_eff d ell ) - ( ∫ ( n_eff / c_ref ) d ell ) |;
    • Q.ds.arrival = max( 0, 1 - p99_delta_form_s / tolP99_Tarr_s )。
  9. 汇总质量分数
    q_score = clamp01( Σ_i w_i * Q_i ),Σ_i w_i = 1,Q_i ∈ { Q.ds.comp, Q.ds.valid, Q.ds.unique, Q.ds.fk, Q.ds.dim, Q.ds.fresh, Q.ds.timing, Q.ds.arrival }。

V. 漂移指标与统计检验(W_ref 对 W_now)

  1. 直方口径(离散或分箱)
    • 令 p_i = P_ref(B_i),q_i = P_now(B_i),Σ_i p_i = Σ_i q_i = 1。
    • DR.field.PSI(k) = Σ_i ( q_i - p_i ) * ln( ( q_i + epsilon ) / ( p_i + epsilon ) )。
    • DR.field.KL(k) = Σ_i p_i * ln( ( p_i + epsilon ) / ( q_i + epsilon ) )。
    • DR.field.JS(k) = ( 1 / 2 ) * KL( p || m ) + ( 1 / 2 ) * KL( q || m ),m = ( p + q ) / 2。
  2. 连续变量分布距离
    • DR.field.W1(k) = ( ∫ | F_ref(x) - F_now(x) | dx ) (Wasserstein-1 口径)。
    • DR.field.KS(k) = sup_x | F_ref(x) - F_now(x) |。
  3. 核两样本距离
    DR.field.MMD2(k) = ( 1 / n^2 ) Σ k(x_i, x_j) + ( 1 / m^2 ) Σ k(y_i, y_j) - ( 2 / (nm) ) Σ k(x_i, y_j )。
  4. 分类变量一致性
    DR.field.chi2(k) = Σ_i ( ( c_now_i - E_now_i )^2 / ( E_now_i + epsilon ) ),其中 E_now_i = N_now * p_i。
  5. 多变量漂移(可选)
    DR.ds.mmd2 = MMD2( X_ref, X_now ),对选定字段子集联合评估。
  6. 概念漂移代理(若有标签或模型)
    • 预测均值漂移:DR.pred.mean = | E_ref[f(x)] - E_now[f(x)] |。
    • 性能漂移:DR.perf = | metric_ref - metric_now |。
  7. 变化点与在线检验
    • CUSUM:S_t = max( 0, S_{t-1} + ( x_t - mu_0 - k ) ),S_t > h 报警。
    • Page-Hinkley:m_t = min( m_{t-1}, x_t ),PH_t = x_t - m_t - lambda,PH_t > h 报警。
    • ADWIN 思路:自适应窗口切分,| mean(W_L) - mean(W_R) | > eps 时切换参考。

VI. 漂移聚合与归一化

  1. 字段贡献与聚合
    • 令 d_k 为字段级漂移度量(如 JS 或 PSI),alpha_k ≥ 0 为权重,Σ alpha_k = 1。
    • DR.ds.raw = Σ_k alpha_k * d_k。
    • 归一化到 [0,1]:drift = clamp01( 1 - exp( - beta * DR.ds.raw ) ),beta > 0。
  2. 解释性分解
    字段贡献率 share_k = ( alpha_k * d_k ) / ( Σ_j alpha_j * d_j + epsilon ),降序输出前 K_top 字段与前 bins_top 的箱贡献。

VII. SLO 设定与告警级别

  1. 指标与阈值(建议口径,可在 contracts 中固化)
    • SLO.q_score.p99 ≥ q_min;SLO.PSI ≤ psi_warn(告警)、≤ psi_fail(熔断)。
    • SLO.KS ≤ ks_max;SLO.JS ≤ js_max;SLO.W1 ≤ w1_max。
    • SLO.timing.skew_ppm ≤ skew_max,SLO.timing.J_ms_p99 ≤ J_max。
    • SLO.arrival.p99_delta_form_s ≤ tolP99_Tarr_s。
    • SLO.fresh_age_s ≤ T_fresh_max。
  2. 多级告警
    • warn:接近阈值触发降权或流量限速;critical:触发回退或隔离,freeze_release 阶段阻断发布。
    • 对事件流增设抑制窗口,防止抖动引起告警风暴。

VIII. 不确定度与量纲校核嵌入

  1. 单位与量纲
    • 指标中含时间、距离、概率等量纲时,先执行 repair_units 并用 check_dim(expr) 校核:
    • 例如 dim(T_arr) = [T],dim(W1) = unit(x),概率量 dim(PSI) = []。
  2. 不确定度传播
    • 若 x 具不确定度 u(x),漂移度量的线性化近似:u(d_k) ≈ sqrt( Σ ( ∂d_k/∂x_i )^2 * u(x_i)^2 )。
    • 发布时可给出 U = k * u_c 的覆盖因子估计,写入 manifest.env_correction.uncertainty_U 或 quality.* 扩展键。

IX. 实现绑定与接口(与 I10- 对齐)*

  1. 计算与落盘
    • compute_quality(ds, policy) -> metrics_Q:返回 Q.ds.*, 字段级 Q.field.* 与 q_score。
    • compute_drift(ds_ref, ds_now, policy) -> metrics_DR:返回字段级与数据集级漂移、drift 与解释性分解。
    • emit_contracts(metrics, thresholds) -> tests[]:生成 contracts.tests 并评估通过/失败。
    • freeze_release(ds, tag, metrics) -> manifest:在 manifest.quality、manifest.outlier_drift 与 contracts 中落盘。
  2. 在线/流式
    在 Threads 执行图中,detect_outlier 节点上游挂接 compute_drift 的滑窗实例;对 TS.sli.* 指标按窗口滚动聚合。

小结


版权与许可(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/