跳到内容

10.2 公平性指标与分组评估:先问哪种错误伤害谁

北境分组的错误率明显偏高,预言厅需要判断差异来自样本、标签、基准率,还是系统造成的实际伤害。

模型总体准确率 91%,北境只有 82%。这值得调查,却不能直接套用“差异超过 5% 就不公平”:样本量、标签质量、基准率和错误后果都未知。公平性不是一个脱离场景的统一公式。

本课目标

  • 按群体分解预测、标签和错误率;
  • 区分 demographic parity、equal opportunity、equalized odds 与 calibration;
  • 用置信区间和交叉群体避免小样本误判;
  • 把指标差异连接到可执行的缓解措施。

1. 准确率会隐藏哪类错误

对二元决策,先报告每组混淆矩阵:

  • true positive rate:真实正例中被识别的比例;
  • false negative rate:真实正例被漏掉的比例;
  • false positive rate:真实负例被误报的比例;
  • precision:预测正例中真正为正的比例;
  • selection rate:被判为正的总体比例;
  • calibration:相同风险分数是否对应相近实际发生率。

若模型决定谁得到紧缺支援,漏报和误报伤害不同;若用于惩罚,错误阳性的代价可能更高。指标选择应从决策和伤害路径推出。

2. 常见公平性目标回答不同问题

Demographic parity

各群体获得正向决定的比例相同。它关注分配结果,但可能忽略真实需求或历史标签差异。

Equal opportunity

各群体 true positive rate 相同。它关注有资格/有需求者能否同样被识别。

Equalized odds

各群体的 true positive rate 与 false positive rate 都相同。约束更强,可能需要改变阈值或模型。

Calibration within groups

同样预测分数在各群体对应相近实际风险。它适合风险沟通,但标签若带偏,校准也会忠实复现偏差。

当群体基准率不同且预测不完美时,若干公平性条件通常不能同时满足。选择不是纯技术优化,而是关于哪类伤害应优先减少的治理决定。

3. 分组评估的最小表

python
import pandas as pd
from sklearn.metrics import confusion_matrix

def group_metrics(part):
    tn, fp, fn, tp = confusion_matrix(
        part["y_true"], part["y_pred"], labels=[0, 1]
    ).ravel()
    return pd.Series({
        "n": len(part),
        "selection_rate": (tp + fp) / max(len(part), 1),
        "tpr": tp / max(tp + fn, 1),
        "fpr": fp / max(fp + tn, 1),
        "precision": tp / max(tp + fp, 1),
    })

report = evaluations.groupby("region").apply(group_metrics)

真实项目还要给出分子、分母和不确定区间。分母为零时不应伪装成 0;应标记不可估计。

4. 交叉群体与小样本

只分别看地区、年龄或设备,会漏掉“北境 × 旧设备 × 夜班”等交叉群体。切得越细,样本越少、区间越宽,还增加多重比较风险。

可采用:

  • 预先确定高风险交叉群体;
  • 报告原始计数和区间,不只排名;
  • 使用分层模型/部分汇聚提高稳定性;
  • 合并群体时保留伤害语义,避免把稀有群体消失在“其他”;
  • 将小样本视为补充数据与谨慎部署信号。

没有通用“5% 差异线”。阈值应结合效应量、统计不确定性、法律政策、伤害严重性和可接受风险制定。

5. 标签可能不是公正真相

若标签是“曾被纪律处分”,它同时受行为、被检查概率、报告渠道和管理者判断影响。模型对标签预测准确,不等于对真实行为公平。

审查:

  • 标签定义在群体间是否一致;
  • 谁更可能被观察、上报或确认;
  • 标签延迟与缺失是否不同;
  • 历史决策是否决定了获得标签的机会;
  • 是否有更接近目标构念的替代测量。

群体指标差异可能来自模型、数据、阈值、流程或真实环境差异,修复措施也因此不同。

6. 敏感属性不能简单删除

删除地区、性别等字段,不会删除其他特征中的代理信息,也无法进行分组审计。另一方面,收集敏感属性本身有隐私和安全风险。

应区分:

  • 是否允许用于模型训练/决策;
  • 是否在受控环境中仅用于评估;
  • 由谁访问、以何种粒度保留;
  • 缺失、自报、多重身份和变化如何表示。

这个决定需要领域、法律、隐私与受影响者共同参与,不能靠“fairness through unawareness”。

7. 缓解策略要对准原因

  • 覆盖不足:改善采集或缩小适用范围;
  • 测量误差:修复设备与标签流程;
  • 阈值造成不同伤害:在合规且有正当理由时重新设计决策规则;
  • 模型欠拟合某群体:改善表示、损失或模型,但独立验证;
  • 决策本身不当:取消自动化或改变资源规则;
  • 反馈循环:保留不受模型影响的测量渠道或探索样本。

强行让一个指标相等可能恶化另一个指标或总体福利。每项缓解都要重新评估性能、群体影响、可解释性和长期行为。

8. 一份可审阅的公平性报告

text
决策用途、受影响者与伤害优先级
群体定义、数据来源与覆盖限制
各组样本量、标签率、预测率和混淆矩阵
效应差/比值及不确定区间
交叉群体和时间切片
标签与测量有效性
所选公平目标及未选择目标的理由
缓解前后权衡、残余风险和负责人

常见误区

  • 准确率差小于某阈值就公平:没有脱离场景的通用差异线。
  • 让 selection rate 相同即可:它只是一个可能目标。
  • 删除敏感属性便没有歧视:代理变量和流程仍在。
  • 小群体指标波动,所以忽略:不确定性应促使谨慎与补充证据。

练习

  1. 为资源支援和纪律审查分别选择主要错误指标并解释理由。
  2. 计算四个群体的混淆矩阵、分子分母和 bootstrap 区间。
  3. 加入设备世代做交叉群体分析,找出总体均值隐藏的问题。
  4. 对一个差异分别提出数据、模型、阈值和流程层修复,并比较副作用。

小结

公平性评估不是寻找一个漂亮总分,而是把不同群体面对的决定、错误和不确定性摊开。指标只有连接到伤害与处置,才是治理工具。

下一课讨论上线后的权力边界:解释、人工复核、申诉、监控和事故响应要构成真正可执行的控制系统。

Built with VitePress | Software Systems Atlas