公平性指标从不同视角量化模型决策对不同人群的差异化影响。人口学均等要求预测与敏感属性统计独立,均等机会约束真实正例的预测率跨组一致,校准性关注预测概率与实际结果的匹配程度。文章推导各指标的数学定义,分析其互斥关系与在实际系统中的取舍原则。结合实际案例验证了方案的可行性与效果。

岗位关联

需要学习Demographic Parity、Equalized Odds、Calibration 指标,公平性指标从不同视角量化模型决策对不同人群的差异化影响。作为模型可解释性与可信AI > 34.3.2 公平性、偏见与因果推理的核心组成,掌握Demographic Parity、Equalized Odds、Calibration 指标有助于打通相关知识链条。

目录
  1. 可视化演示
  2. 公平性指标的核心动机与三类视角
  3. Demographic Parity人口学均等的定义与适用
  4. Equalized Odds均等机会的定义与优势
  5. Calibration校准性的定义与概率匹配
  6. 三大指标的互斥关系与不可能定理
  7. 公平性指标的工程选择与组合策略
  8. AI 应用场景
  9. Python 演示
  10. 常见问答
  11. 常见误区
  12. 参考来源

可视化演示

三模式展示AI公平性:Demographic Parity预测率跨组对比、Equalized Odds的TPR/FPR均等检验、Calibration与EO的不可能定理互斥关系。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Demographic Parity人口学均等 组A=0预测率70%远高于组A=1的40%存在偏差 要求P(Ŷ=1|A=0)=P(Ŷ=1|A=1)预测与敏感属性统计独立 DP: P(Ŷ=1|A=0) = P(Ŷ=1|A=1) 关注预测结果分布均等但不考虑真实标签。

公平性指标的核心动机与三类视角

公平性指标并非单一标尺,而是从三个不同视角审视模型决策对不同人群的差异化影响。这三类视角分别对应不同的业务诉求和伦理关切,理解它们的出发点才能避免把公平当成单一数字优化。

统计独立性视角(Demographic Parity)关注预测与敏感属性是否无关,即模型是否对不同群体给出相同比例的正预测。这一视角最直观地体现了结果均等的理念,适用于历史偏见严重、需要强制纠正的场景,如招聘初筛、广告曝光配额等。但其局限在于不考虑真实标签,可能为了追求形式上的均等而损害预测准确性。

错误率视角(Equalized Odds)关注各组TPR与FPR是否一致,即在真实标签条件下预测错误率是否跨组一致。这一视角比Demographic Parity更尊重真实标签,适用于司法量刑、贷款审批等需要平衡漏放与误抓代价的场景。它保证对真实正例和真实负例的判断在不同人群间同样准确,是监管最常接受的公平性约束之一。

概率匹配视角(Calibration)关注预测概率与实际结果对齐,即对预测概率为0.7的样本,实际正例比例是否约为70%。这一视角适用于风险评分、医疗预后等需要可解释概率输出的场景,能保证不同人群拿到相同分数意味着相同风险。但校准性好不等于错误率公平,可能掩盖各组阈值决策后的差异。

三类视角的区分至关重要:Demographic Parity追求形式上的结果均等,Equalized Odds追求条件错误率的跨组一致,Calibration追求概率含义的跨组对齐。在实际业务中,需要根据决策场景的代价结构、监管要求和伦理关切选择合适的主指标,并辅以其他指标联合评估。

Demographic Parity人口学均等的定义与适用

Demographic Parity要求各组正预测概率严格相等,即P(Y_hat=1|A=0)=P(Y_hat=1|A=1),其中Y_hat是模型预测结果,A是敏感属性。这一定义关注预测结果的统计独立性,不考虑真实标签,只要求模型对不同群体给出相同比例的正预测。

Demographic Parity适用于历史偏见严重、需要强制结果均等的场景。例如在招聘初筛中,如果历史数据显示某群体的面试通过率显著低于其他群体,可以通过Demographic Parity约束确保各群体的初筛通过率相近,从而纠正历史不公。在广告曝光配额中,Demographic Parity可以确保不同族裔群体获得相近的广告曝光机会。

然而,当基线正例率不同时,强制Demographic Parity会损害预测准确性。例如,如果两个群体的真实疾病发病率不同(群体A为5%,群体B为15%),强制模型对两组给出相同的正预测率(如10%),会导致对群体A过度诊断、对群体B诊断不足,反而降低整体预测质量。

Demographic Parity无法区分真假阳性,因此不适用于司法等高代价决策场景。在司法量刑中,假阳性(错误定罪)和假阴性(错误释放)的代价截然不同,仅追求正预测率均等无法反映这种代价差异。此时需要配合Equalized Odds或Calibration联合评估,确保在追求形式均等的同时不牺牲预测的实质准确性。

Equalized Odds均等机会的定义与优势

Equalized Odds要求模型在各组人群上的真阳性率(TPR)与假阳性率(FPR)分别相等,即TPR_A=TPR_B且FPR_A=FPR_B。这一定义在真实标签条件下要求预测错误率跨组一致,比Demographic Parity更尊重真实标签与预测准确性。

Equalized Odds适用于司法、贷款等需要平衡漏放与误抓代价的场景。在司法量刑中,TPR表示对真实再犯者的正确识别率,FPR表示对真实不再犯者的错误定罪率。Equalized Odds保证这两类错误在不同族裔群体间同样发生,避免对特定群体的系统性歧视。在贷款审批中,TPR表示对真实履约者的正确批准率,FPR表示对真实违约者的错误批准率,Equalized Odds保证这两类错误在不同性别群体间同样发生。

Equalized Odds是监管最常接受的公平性约束之一,因为它既考虑了真实标签,又区分了不同类型的错误。相比Demographic Parity,Equalized Odds更能反映模型的实质公平性;相比Calibration,Equalized Odds更直接地约束决策层面的公平。因此,在需要平衡漏放与误抓代价的场景中,Equalized Odds通常是首选的公平性指标。

但Equalized Odds也有其局限:当各组的TPR和FPR无法同时相等时(如基础率不同),需要在这两类错误率之间做取舍。此外,Equalized Odds不保证预测概率的跨组校准,即相同分数在不同群体中可能意味着不同的风险水平。因此,在需要可解释概率输出的场景中,需要配合Calibration联合评估。

Calibration校准性的定义与概率匹配

Calibration要求模型输出的预测概率与实际事件发生频率一致,即对预测概率为p的样本,实际正例比例应约为p。形式化地,对于任意预测概率值p,有P(Y=1|Y_hat=p)=p,其中Y是真实标签,Y_hat是预测概率。这一约束需在各组人群内分别成立才算跨组校准。

Calibration适用于风险评分、医疗预后等需要可解释概率输出的场景。在医疗风险评分中,医生需要根据模型输出的概率判断患者的病情严重程度和资源分配优先级。如果模型对群体A输出0.6的概率表示60%的再入院风险,但对群体B同样输出0.6的概率却表示75%的实际风险,这种校准偏差会导致临床资源错配和医疗决策失误。

Calibration保证不同人群拿到相同分数意味着相同风险,这是概率可信度的基础。但校准性好不等于错误率公平:一个完美校准的模型仍可能在特定决策阈值下让某组FPR远高于另一组,造成实际决策不公平。例如,两个群体的校准曲线完全一致,但由于基础率不同,在相同的0.5阈值下,群体A的FPR可能是群体B的两倍。

因此,Calibration需要与Equalized Odds联合评估。Calibration保证概率含义的跨组一致性,Equalized Odds保证决策错误的跨组一致性。在需要同时保证概率可信和决策公平的场景中(如医疗风险评分),两者缺一不可。工程实践中,通常先确保Calibration满足要求,再通过阈值调整或重采样使Equalized Odds也达到合规标准。

三大指标的互斥关系与不可能定理

Chouldechov与Kleinberg的不可能定理严格证明:当各组基础率(真实正例率)不同时,Calibration与Equalized Odds无法同时满足,Demographic Parity与Calibration也无法同时满足。这意味着三者至多同时满足两项,不存在全优解。这一理论结果揭示了公平性不是多目标全优问题,而是取舍问题。

不可能定理的直觉理解:如果群体A的基础正例率为10%,群体B为30%,要同时满足Calibration和Equalized Odds意味着:(1)相同预测概率在两组中对应相同的实际风险(Calibration);(2)两组的TPR和FPR分别相等(Equalized Odds)。但这两个约束在基础率不同时会产生矛盾:要让TPR相等,需要调整阈值,但这会破坏Calibration;要保持Calibration,需要保持阈值,但这会让TPR不等。

这一理论结果对工程实践的指导意义在于:工程师必须根据业务语境明确哪个指标优先。在司法量刑中,Equalized Odds通常是首选,因为漏放和误抓的代价需要跨族裔公平分配;在医疗风险评分中,Calibration通常是首选,因为概率含义的跨组一致性是临床决策的基础;在招聘初筛中,Demographic Parity可能是首选,因为需要纠正历史偏见并确保曝光均等。

虽然三者无法同时最优,但可以通过阈值调整、重采样、对抗去偏等技术逼近帕累托前沿。例如,对不同群体使用不同的决策阈值(组内阈值调整),可以在Equalized Odds和Calibration之间找到平衡点;对少数群体做过采样并加对抗去偏损失项,可以在Demographic Parity和预测准确性之间找到平衡点。工程实践的核心是在帕累托前沿上选择合适的权衡点,而非追求不可能全优的解。

公平性指标的工程选择与组合策略

工程实践中通常不止看单一指标,而是按场景组合:招聘初筛用Demographic Parity保证曝光均等、贷款审批用Equalized Odds保证错误率公平、信用评分用Calibration保证概率可信。每种场景的代价结构不同,决定了主指标的选择:招聘场景中历史偏见严重,需要强制结果均等;贷款场景中漏放和误抓代价需要跨组公平分配;信用评分场景中概率含义的跨组一致性是风险评估的基础。

辅以组间差异比(disparity ratio)与4/5规则做合规卡控。4/5规则(也称80%规则)要求任何受保护群体的通过率不得低于最高通过率的80%,这是美国平等就业机会委员会(EEOC)的合规标准。组间差异比是两组指标的比值,用于量化跨组差异的程度。在监管审查中,通常需要同时报告主指标和这些辅助指标,以全面评估模型的公平性。

需报告各指标置信区间与跨子群表现,避免用全组均值掩盖弱势子群的隐性歧视。全组均值可能掩盖弱势子群的不公平:例如女性整体TPR与男性一致,但其中的少数族裔女性TPR可能远低于平均。必须把指标拆分到性别、族裔、年龄等多维交叉子群分别报告,并辅以置信区间,才能发现被均值掩盖的局部不公平。

在模型上线前的公平性体检流程中,建议按以下步骤操作:(1)按敏感属性分组计算三大指标;(2)对每个主指标报告置信区间和4/5规则合规性;(3)拆分到交叉子群检查是否存在隐性歧视;(4)如果某指标超标,触发重训练流程(如样本重采样、对抗去偏、阈值调整);(5)重新评估直到所有指标落入合规阈值;(6)提交监管备案并建立持续监控机制。这一流程确保模型在上线前完成全面的公平性评估,并在上线后持续监控公平性表现。

AI 应用场景

信贷模型上线前公平性体检

阶段:模型评估与合规审查阶段

解决的问题:避免信贷模型对特定性别或族裔产生系统性拒绝率差异引发监管处罚

具体案例:风控团队在XGBoost信贷模型上线前,对验证集按性别与族裔分组计算Demographic Parity差值、Equalized Odds的TPR与FPR差、Calibration的Brier分数跨组偏差。若Equalized Odds差值超过0.05则触发重训练,对少数族裔做样本重采样并加对抗去偏损失项,直到三指标均落入合规阈值才提交监管备案。团队还按性别与族裔交叉分组检查,发现少数族裔女性的TPR显著低于平均,针对性地增加了该子群的样本权重,最终使所有子群指标均达到合规要求。

招聘初筛模型的曝光公平卡控

阶段:模型推理与候选推荐阶段

解决的问题:防止简历初筛模型系统性降低女性或少数族裔简历进入面试的比例

具体案例:招聘平台用NLP模型对简历打分排序,上线后实时监控各性别与族裔进入面试队列的比例。以Demographic Parity为主指标要求各组进入比例差不超过10%,辅以Equalized Odds保证对真实合格候选人不漏放。当DP差值超阈值时自动调整排序阈值或做组内重排序,保证曝光均等同时不大幅牺牲匹配质量。团队还建立了每月公平性审计机制,持续监控各子群的表现变化,及时发现并纠正新出现的偏见。

Python 演示

python42 行
import numpy as npfrom sklearn.metrics import confusion_matrix def calculate_fairness_metrics():    """计算三大公平性指标的示例代码"""    np.random.seed(42)    n_samples = 1000        group_a = 0    group_b = 1        y_true_a = np.random.binomial(1, 0.3, n_samples // 2)    y_pred_a = np.random.binomial(1, 0.35, n_samples // 2)        y_true_b = np.random.binomial(1, 0.5, n_samples // 2)    y_pred_b = np.random.binomial(1, 0.55, n_samples // 2)        y_true = np.concatenate([y_true_a, y_true_b])    y_pred = np.concatenate([y_pred_a, y_pred_b])    groups = np.array([group_a] * (n_samples // 2) + [group_b] * (n_samples // 2))        dp_a = np.mean(y_pred[groups == group_a])    dp_b = np.mean(y_pred[groups == group_b])    dp_diff = abs(dp_a - dp_b)        def calc_tpr_fpr(y_true, y_pred, mask):        tn, fp, fn, tp = confusion_matrix(y_true[mask], y_pred[mask], labels=[0, 1]).ravel()        tpr = tp / (tp + fn) if (tp + fn) > 0 else 0        fpr = fp / (fp + tn) if (fp + tn) > 0 else 0        return tpr, fpr        tpr_a, fpr_a = calc_tpr_fpr(y_true, y_pred, groups == group_a)    tpr_b, fpr_b = calc_tpr_fpr(y_true, y_pred, groups == group_b)        eo_tpr_diff = abs(tpr_a - tpr_b)    eo_fpr_diff = abs(fpr_a - fpr_b)        return {        'demographic_parity': {'group_a': dp_a, 'group_b': dp_b, 'difference': dp_diff},        'equalized_odds': {'tpr_a': tpr_a, 'tpr_b': tpr_b, 'tpr_diff': eo_tpr_diff,                          'fpr_a': fpr_a, 'fpr_b': fpr_b, 'fpr_diff': eo_fpr_diff}    }
目的:计算Demographic Parity和Equalized Odds两大公平性指标,展示不同群体间的预测差异
  1. def calculate_fairness_metrics():定义公平性指标计算函数,返回两大指标的跨组差异
  2. y_true_a = np.random.binomial(1, 0.3, n_samples // 2)生成群体A的真实标签,基础正例率为0.3
  3. y_pred_a = np.random.binomial(1, 0.35, n_samples // 2)生成群体A的预测结果,正预测率为0.35
  4. dp_a = np.mean(y_pred[groups == group_a])计算群体A的正预测率,即Demographic Parity的组内值
  5. dp_diff = abs(dp_a - dp_b)计算两组Demographic Parity的绝对差异,差异越小说明越公平
  6. tn, fp, fn, tp = confusion_matrix(y_true[mask], y_pred[mask], labels=[0, 1]).ravel()计算混淆矩阵的四个元素:真阴性、假阳性、假阴性、真阳性
  7. tpr = tp / (tp + fn) if (tp + fn) > 0 else 0计算真阳性率TPR,即对真实正例的正确识别率
  8. fpr = fp / (fp + tn) if (fp + tn) > 0 else 0计算假阳性率FPR,即对真实负例的错误判定率
  9. eo_tpr_diff = abs(tpr_a - tpr_b)计算两组TPR的差异,Equalized Odds要求此差异尽可能小
  10. return {'demographic_parity': {...}, 'equalized_odds': {...}}返回两大公平性指标的完整计算结果,包括组内值和跨组差异

常见问答

Demographic Parity、Equalized Odds和Calibration三者的核心区别是什么?
Demographic Parity关注预测结果的统计独立性,要求各组正预测率相等,不考虑真实标签;Equalized Odds关注条件错误率的跨组一致性,要求各组TPR和FPR分别相等,在真实标签条件下评估;Calibration关注概率含义的跨组对齐,要求相同预测概率在不同群体中对应相同的实际风险。三者分别从结果均等、错误率公平、概率可信三个视角审视公平性。
为什么说不可能定理揭示了公平性是取舍问题而非优化问题?
Chouldechov与Kleinberg的不可能定理证明:当各组基础率不同时,Calibration与Equalized Odds无法同时满足,Demographic Parity与Calibration也无法同时满足。这意味着三者至多同时满足两项,不存在全优解。因此,公平性不是通过提升模型质量就能同时改善所有指标的多目标优化问题,而是需要根据业务语境明确优先级的取舍问题。
在什么场景下应该优先选择Demographic Parity?
Demographic Parity适用于历史偏见严重、需要强制结果均等的场景,如招聘初筛、广告曝光配额等。这些场景的核心关切是纠正历史不公,确保不同群体获得相近的机会。但当基线正例率不同时,强制Demographic Parity会损害预测准确性,因此不适用于司法、医疗等需要考虑真实标签和高代价错误的场景。
Equalized Odds为什么是监管最常接受的公平性约束?
Equalized Odds既考虑了真实标签,又区分了不同类型的错误(TPR和FPR),比Demographic Parity更尊重预测准确性,比Calibration更直接约束决策层面的公平。在司法、贷款等需要平衡漏放与误抓代价的场景中,Equalized Odds能保证这两类错误在不同群体间同样发生,避免对特定群体的系统性歧视,因此最符合监管对实质公平的要求。
如何发现被全组均值掩盖的隐性歧视?
必须把指标拆分到性别、族裔、年龄等多维交叉子群分别报告。例如,女性整体TPR可能与男性一致,但其中的少数族裔女性TPR可能远低于平均。通过交叉子群分析,可以发现被均值掩盖的局部不公平。同时需要报告各指标的置信区间,评估差异的统计显著性,并辅以4/5规则做合规卡控。

常见误区

误区认为Demographic Parity、Equalized Odds、Calibration可以同时满足,只要模型足够好

正解Chouldechov与Kleinberg的不可能定理已严格证明,当各组基础率(真实正例率)不同时,Calibration与Equalized Odds无法同时满足,Demographic Parity与Calibration也无法同时满足。模型再好也只能在三者间做取舍,不存在全优解,必须按业务语境明确优先级。

为何常见:初学者常把公平性当成可优化的多目标,直觉上认为提升模型质量就能同时改善所有指标,忽略了基础率不同带来的数学约束。

误区认为满足Demographic Parity就等于模型公平,可以放心上线

正解Demographic Parity只看预测结果的统计独立性,不考虑真实标签,可能让准确率高的组被故意压低、准确率低的组被故意抬高,反而损害预测质量;它也无法区分真假阳性,在司法等高代价决策中不可单独作为公平依据,必须配合Equalized Odds或Calibration联合评估。

为何常见:Demographic Parity计算简单、直觉上最像'结果均等',常被业务方当成公平性的唯一标志,忽略了它对真实标签与错误率的盲区。

误区认为Calibration校准好就代表模型对各人群决策公平

正解Calibration只保证预测概率与实际频率匹配,不约束阈值化后的错误率分布;一个完美校准的模型仍可能在特定决策阈值下让某组FPR远高于另一组,造成实际决策不公平。校准是概率可信度的保证而非决策公平的保证,需与Equalized Odds联合看。

为何常见:Calibration的字面意思是'校准',初学者容易把它等同于'调好模型就公平',忽略了校准只作用于连续概率而非离散决策阈值。

误区认为用全组均值评估公平性指标就够了,不需拆分到子群

正解全组均值可能掩盖弱势子群的隐性歧视:比如女性整体TPR与男性一致,但其中的少数族裔女性TPR可能远低于平均。必须把指标拆分到性别、族裔、年龄等多维交叉子群分别报告,并辅以置信区间与4/5规则,才能发现被均值掩盖的局部不公平。

为何常见:计算全组均值最简单且数字好看,工程上容易偷懒只汇报整体差异比,忽略了公平性问题的交叉性与局部性特征。

参考来源