想象你是某家银行的风控负责人,让 AI 系统自动审批贷款。系统上线后风平浪静,直到监管机构送来一份函件:女性客户的被拒率明显高于男性!你翻遍日志看不出问题——AI 又没直接看性别,怎么会歧视?其实,AI 的偏见就像一个从不体检的人:高油高盐、熬夜加班,身体早已悄悄失衡,直到某天体检报告亮起红灯才恍然大悟。AIF360 和 Fairlearn,正是给 AI 做「公平体检」的两套设备。AIF360 如同三甲综合体检中心,从头到脚系统检查;Fairlearn 如同便携智能手环,随时随地方便监测。查出异常后还有三套治疗方案:预处理像调整饮食结构、处理中像改变健身习惯、后处理像吃降压药对症压数值。最彻底的,是用因果推理追查「家族病史」,把偏见的传导路径连根拔起。下面我们就走进这座「公平体检中心」,看看如何让 AI 学会不偏不倚。

岗位关联

公平性工具箱是 AI 从业者从「模型跑通」走向「模型可信」的必修课,也是应对监管审计、落地负责任 AI 的硬技能。

目录
  1. 可视化演示
  2. 1. 公平性基础:先找到偏见的病根
  3. 2. 公平性量化指标:体检报告的各项读数
  4. 3. AIF360 实战:三甲综合体检中心
  5. 4. Fairlearn 实战:便携智能手环
  6. 5. 偏见缓解算法:三套治疗方案
  7. 6. 因果推理与公平:追查病根
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

通过AIF360与Fairlearn工具对比、三阶段偏见缓解流水线及公平性指标权衡曲线,展示可信AI公平性工程实践。

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

公平性工具箱 加载中

1. 公平性基础:先找到偏见的病根

银行 AI 面试官在训练数据里发现「本地员工绩效更好」,于是悄悄给外地户口候选人降分。它不会撒谎,它只是忠实地复述了历史:过去招聘偏好本地人,绩效数据自然带上了这层滤镜。AI 的偏见,绝大多数不是模型「故意使坏」,而是把人类历史的偏心事无巨细地记了下来。

在公平性领域,我们把性别、种族、年龄这类受法律保护、不应左右决策的属性称为「敏感属性」。模型对敏感属性不同的群体给出系统性差异的结果,就构成了偏见。偏见的来源主要有四类:历史数据偏见(过去的歧视被标签固化)、样本偏差(抽样漏掉了某些群体)、代理变量(用邮编、方言等间接编码了敏感属性)、标注偏见(人工标注自带主观倾向)。

偏见是否真的存在,可以定量观察。设定敏感属性为 \(S\),结果标签为 \(Y\),如果两个群体的正例概率显著不同,数据层就已经「带病」。

这就像体检验血发现血脂偏高——数值本身不告诉你病因,但它是必须记录的第一张化验单。除了偏见来源,还要理解「公平」的两层含义:群体公平要求不同群体在统计结果上被一视同仁;个体公平要求相似的个体得到相似的预测。两者常常不能同时满足,并且追求公平往往会牺牲少量准确率,这就是「公平与精度的权衡」。

P(Y=1∣S=1)≠P(Y=1∣S=0)\displaystyle P(Y=1 \mid S=1) \neq P(Y=1 \mid S=0)
这个公式是说:两种敏感属性取值的人群,拿到正例结果的比例明显不一致,数据里就有了偏见的「体温异常」。
  1. 条件概率\(P(Y=1 \mid S=1)\) 表示敏感属性为 1 的群体中正例出现的概率,例如女性群体贷款获批的比例。
    P(Y=1∣S=1)\displaystyle P(Y=1 \mid S=1)
  2. 对照组\(P(Y=1 \mid S=0)\) 是另一个群体(如男性)的正例率,作为对照基准。
    P(Y=1∣S=0)\displaystyle P(Y=1 \mid S=0)
  3. 差异判定当两边差值显著偏离 0,比如 0.72 对 0.33,就说明数据分配结果时「看人下菜碟」。
    P(Y=1∣S=1)−P(Y=1∣S=0)≠0\displaystyle P(Y=1 \mid S=1) - P(Y=1 \mid S=0) \neq 0

2. 公平性量化指标:体检报告的各项读数

体检报告不会只量一项血压,公平性也一样。只盯着一个数字,就像只看体温就判断全身健康,很容易误诊。要全面评估模型,需要一组各有侧重的「体检读数」。

最常用的三项指标是统计均等差异、机会均等差异和预测校准。统计均等差异(SPD)看的是「两个群体的整体正向预测率差多少」,它衡量结果层面的粗粒度公平;机会均等差异(EOD)进一步把视角收窄到「真实正例的人群中,两个群体被正确识别为正例的概率差多少」,它关心的是「同样有资格的人,是否同样被看见」;预测校准则要求:模型打出某个分数后,真实正例的比例不应依赖敏感属性。

以统计均等差异为例:

血压、血糖、心率各有参考区间,三项指标也要组合解读。机会均等防止「有真才实学的人被系统忽略」,统计均等防止「整体失衡」,校准则保证「分数可信」。这一叠化验单,已经足够让医生判断病灶的大致位置。

SPD=P(Y^=1∣S=1)−P(Y^=1∣S=0)\displaystyle \text{SPD} = P(\hat{Y}=1 \mid S=1) - P(\hat{Y}=1 \mid S=0)
统计均等差异是最直观的公平指标:模型给两个群体「通过」的比例差。差值越接近 0,结果层越公平。
  1. 预测结果\(\hat{Y}=1\) 表示模型判出正例,比如「批准贷款」。
    Y^=1\displaystyle \hat{Y}=1
  2. 组内正向率\(P(\hat{Y}=1 \mid S=1)\) 是敏感属性为 1 的群体被模型判为正例的比例。
    P(Y^=1∣S=1)\displaystyle P(\hat{Y}=1 \mid S=1)
  3. 组间求差用第一组的正向率减第二组的正向率,得到统计均等差异。
    SPD=P(Y^=1∣S=1)−P(Y^=1∣S=0)\displaystyle \text{SPD} = P(\hat{Y}=1 \mid S=1) - P(\hat{Y}=1 \mid S=0)
  4. 判定标准\(\lvert \text{SPD} \rvert < 0.1\) 通常视为可接受,超过则进入「红牌区」。
    ∣SPD∣<0.1\displaystyle \lvert \text{SPD} \rvert < 0.1

3. AIF360 实战:三甲综合体检中心

IBM 的 AIF360 像一家三甲综合体检中心:科室齐全、设备精良,从抽血、CT 到专家会诊一条龙。它适合在模型上线前做一次彻彻底底的全身体检,也适合监管审计时拿出完整档案。

AIF360 的架构围绕四个组件展开:数据封装(Dataset)、指标库(Metrics)、缓解算法(Bias Mitigation)和可解释器(Explainers)。它内置了 Adult Income(收入预测)、German Credit(信用评估)、COMPAS(再犯率预测)等经典公平性基准数据,通过统一的 StandardDataset 接口加载,省去大量数据清洗的功夫。

典型的工作流是四步:先加载数据并封装为 StandardDataset;然后用 Fairness Metrics 计算初始的偏见指标;接着选择一个缓解算法(如重加权、对抗去偏);最后重新评估缓解后的模型,对比前后指标是否改善。AIF360 的预处理算法 Reweighing(重加权)非常经典,它给每个样本赋予权重,让「敏感属性×标签」的联合分布在训练集中变得均匀:

三甲医院的好处是全面,坏处是排队。AIF360 组件多、配置细,适合有专门合规团队的大厂;如果你只想快速监测、轻量干预,下面这位「便携设备」选手可能更合适。

W(s,y)=P(S=s)×P(Y=y)P(S=s,Y=y)\displaystyle W_{(s,y)} = \frac{P(S=s) \times P(Y=y)}{P(S=s, Y=y)}
重加权通过调整样本权重来「漂白」历史偏见:观测中占比过高的组合降权,占比过低的组合提权。
  1. 观测联合概率\(P(S=s, Y=y)\) 是数据中「敏感属性取 s 且标签取 y」的真实占比,例如女性且获批的样本比例。
    P(S=s,Y=y)\displaystyle P(S=s, Y=y)
  2. 独立期望概率若敏感属性与标签毫无关系,期望联合概率等于两个边缘概率相乘。
    P(S=s)×P(Y=y)\displaystyle P(S=s) \times P(Y=y)
  3. 权重计算理想概率除以观测概率,比值大于 1 说明该组合被低估,需要「加码」。
    W(s,y)=P(S=s)×P(Y=y)P(S=s,Y=y)\displaystyle W_{(s,y)} = \frac{P(S=s) \times P(Y=y)}{P(S=s, Y=y)}
  4. 加权训练将权重乘入每个样本的损失函数,再重新训练模型,统计层面的组间差异就被抹平了。

4. Fairlearn 实战:便携智能手环

微软的 Fairlearn 是「便携智能手环」:轻巧、灵敏,能与手机(Scikit-learn)无缝同步。它不需要大动干戈改造数据管道,戴上就能开始监测,尤其适合已经上线、需要持续审计的模型。

Fairlearn 的核心组件是 MetricFrame,它接收一组指标函数,自动按敏感属性分组计算并汇总。比如把准确率、选择率都丢进 MetricFrame,一条命令就能看到「全体指标」和「各组指标」的对照表。另一个高频组件是后处理缓解算法 ThresholdOptimizer,它不碰训练过程,只在预测阶段为每个敏感组寻找最优决策阈值:

Fairlearn 的便捷之处在于它与 Sklearn 的集成是天然的:一个训练好的 LogisticRegression 对象可以直接塞进 ThresholdOptimizer,预测接口也几乎一致。手环的优势是随时可戴、数据直观,但它只能「监测体征」,治不了深层病灶——那就要看下一节的三种治疗方案。

min⁡tLoss(t)s.t.EODiff(t)≤ϵ\displaystyle \min_{t} \text{Loss}(t) \quad \text{s.t.} \quad \text{EODiff}(t) \le \epsilon
这是后处理治疗的「处方原理」:在保证机会均等差异不超过容忍度的前提下,寻找分类损失最小的决策阈值。
  1. 决策阈值\(t\) 是模型预测分数的判定阈值,分数大于 \(t\) 判正例,否则判负例。
    t\displaystyle t
  2. 损失目标\(\text{Loss}(t)\) 是阈值 \(t\) 下的分类损失,衡量预测错误的总代价,希望它尽量低。
    Loss(t)\displaystyle \text{Loss}(t)
  3. 公平约束\(\text{s.t.}\) 表示「在……约束下」,\(\text{EODiff}(t) \le \epsilon\) 强制机会均等差异不超容忍度。
    EODiff(t)≤ϵ\displaystyle \text{EODiff}(t) \le \epsilon
  4. 折中求解后处理阶段通过网格搜索或对偶方法,找到「又准又公平」的折中阈值。

5. 偏见缓解算法:三套治疗方案

治疗思路决定手段:想从源头改善体质,调整饮食;想改变运动模式,换一种健身方式;只想快速压住症状,吞一颗降压药。偏见缓解的三类算法,恰好对应这三种逻辑。

预处理在训练之前动手,代表是重加权(Reweighing)和重采样(Sampling),它们修改训练数据的分布,让敏感组在统计上「均衡出场」。处理中在训练过程中动手,把公平性写进目标函数,代表是对抗去偏(Adversarial Debiasing)和公平正则项:

后处理则是在模型已训练好的情况下,只调整输出层。比如给不同群体设定不同的决策阈值:

选型原则很实际:数据可以改动、愿意重训,优先预处理或处理中;生产环境只允许改接口,选后处理最稳。三套方案没有绝对优劣,只有「病灶在哪一层」的匹配问题。

min⁡θL(θ)+λ⋅Unfair(fθ)\displaystyle \min_{\theta} \mathcal{L}(\theta) + \lambda \cdot \text{Unfair}(f_\theta)
后处理公式:每个群体用各自的阈值做最终裁决。阈值高的群体更难被批准,阈值低的群体更容易,从而拉平组间结果。
  1. 原始打分\(f(x)\) 是模型输出的风险分或置信度,例如信用评分。
    f(x)\displaystyle f(x)
  2. 分组阈值\(t_s\) 是敏感属性组 \(s\) 专属的决策阈值,不同组可以不同。
    ts\displaystyle t_s
  3. 判别规则打分超过阈值输出正例,否则输出负例;升高阈值收窄通过,降低阈值放宽通过。
    y^s={1,f(x)≥ts0,f(x)<ts\displaystyle \hat{y}_s = \begin{cases} 1, & f(x) \ge t_s \\ 0, & f(x) < t_s \end{cases}

6. 因果推理与公平:追查病根

降压药吃一辈子,血压依然会反弹——因为没管住熬夜和盐。公平性也一样:指标只是症状,因果才是病根。因果推理要回答的不再是「模型有没有偏见」,而是「偏见是通过哪条路径传导的」。

因果公平的核心是反事实公平:如果把一个人的敏感属性「强制切换」(比如把性别从女换成男),而其他条件原封不动,预测结果不应该改变。用干预算子 \(\text{do}(\cdot)\) 表达:

实践中通常用因果图(DAG)建模:画出敏感属性 \(S\)、中介变量 \(Z\)(如通勤距离、社交习惯)和结果 \(Y\) 的依赖关系,再用路径分析把总效应分解为直接效应(\(S \to Y\))和间接效应(\(S \to Z \to Y\))。如果偏见主要通过间接路径传导,说明存在「歧视性中介」——系统看似没直接看性别,却通过性别相关的中介变量做出了歧视决策。微软的 DoWhy 工具把「建模→估计→反驳」三步封装成标准流程,让因果审计也能半自动化地落地。

P(Y^=1∣do(S=1))=P(Y^=1∣do(S=0))\displaystyle P(\hat{Y}=1 \mid \text{do}(S=1)) = P(\hat{Y}=1 \mid \text{do}(S=0))
反事实公平公式:强制让敏感属性取不同值时,预测为正例的概率应相同。
  1. 干预算子\(\text{do}(S=1)\) 表示用外部力量强制让所有人的敏感属性取值为 1。
    do(S=1)\displaystyle \text{do}(S=1)
  2. 阻断混杂与普通条件概率 \(P(\hat{Y} \mid S=1)\) 不同,\(\text{do}\) 会切断从混杂变量指向 \(S\) 的路径,只看纯粹的因果效应。
    P(Y^=1∣do(S=1))\displaystyle P(\hat{Y}=1 \mid \text{do}(S=1))
  3. 公平等式两边概率相等,说明改变敏感属性不会改变预测分布,模型满足反事实公平。
    P(Y^=1∣do(S=1))=P(Y^=1∣do(S=0))\displaystyle P(\hat{Y}=1 \mid \text{do}(S=1)) = P(\hat{Y}=1 \mid \text{do}(S=0))

AI 应用场景

信贷风控公平审计

阶段:模型评估与监测

解决的问题:传统方式靠人工抽检风控模型,漏检率高,难以应对监管机构对「歧视性贷款」的审计要求。公平性工具箱能自动量化不同性别、年龄、族裔的获批率差异,并生成合规报告。

具体案例:某消费金融公司用 Fairlearn 的 MetricFrame 对季度内 120 万笔贷款审批做公平性体检,发现 30 岁以下申请人获批率低 8 个百分点,随后使用 ThresholdOptimizer 调整各组阈值,差异降为 2%,通过监管审查。

招聘简历筛选去偏

阶段:数据处理与模型训练

解决的问题:AI 简历筛选会复刻历史招聘偏好,对目标群体产生系统性压制。AIF360 的重加权预处理能在训练前「漂白」历史标签中的偏好,从源头阻断偏见。

具体案例:某互联网大厂招聘团队发现 AI 筛选对女性简历的通过率偏低,用 AIF360 内置的 Reweighing 算法调整训练样本权重后,性别通过率差异从 9% 降至 1.5%,候选人来源多样性明显改善。

医疗诊断一致性检查

阶段:因果分析与模型审计

解决的问题:不同族裔患者在同一疾病预测模型上的误诊率差异大,普通指标只能「报告差异」,无法定位原因。因果推理能追溯出「就医次数不足→真实病程更重→模型预测偏移」的传导链条。

具体案例:某医院 AI 辅助诊断系统对少数族裔的漏诊率偏高,团队用 DoWhy 构建因果图,发现间接效应(通过就医次数传导)贡献了 70% 的偏见,据此改进数据采集策略,漏诊率显著回落。

Python 演示

python51 行
# -*- coding: utf-8 -*-"""Fairlearn 实战:贷款审批模型的公平性评估与偏见缓解运行前请先安装依赖:pip install fairlearn scikit-learn numpy"""import numpy as npfrom sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scorefrom fairlearn.metrics import MetricFrame, selection_rate, equalized_odds_differencefrom fairlearn.postprocessing import ThresholdOptimizer # 1. 构造模拟数据:女性群体历史评分偏低,模拟“历史偏见”rng = np.random.RandomState(42)n = 1000sex = np.array([0] * 500 + [1] * 500)           # 0=女性, 1=男性score = rng.normal(0, 1, n)score[sex == 0] -= 0.5                          # 偏见来源:女性群体评分被压低y = (score + rng.normal(0, 0.6, n) > 0).astype(int) X = score.reshape(-1, 1)X_train, X_test, y_train, y_test, s_train, s_test = train_test_split(    X, y, sex, test_size=0.3, random_state=7) # 2. 训练基础逻辑回归模型model = LogisticRegression()model.fit(X_train, y_train)pred = model.predict(X_test)  # 3. 公平性评估:按敏感属性分组统计关键指标def report(y_true, y_pred, sensitive, name):    mf = MetricFrame(        metrics={'selection': selection_rate, 'accuracy': accuracy_score},        y_true=y_true, y_pred=y_pred, sensitive_features=sensitive)    sel = mf.by_group['selection'].values    print("[%s] 整体精度=%.3f" % (name, mf.overall['accuracy']))    print("[%s] 女性通过率=%.3f, 男性通过率=%.3f" % (name, sel[0], sel[1]))    print("[%s] 通过率差异=%.3f, 机会均等差异=%.3f" % (        name, abs(sel[0] - sel[1]),        equalized_odds_difference(y_true, y_pred, sensitive_features=sensitive)))  report(y_test, pred, s_test, "原始模型") # 4. 后处理缓解:按群体调整决策阈值,使机会均等达标post = ThresholdOptimizer(estimator=model, constraints='equalized_odds', prefit=True)post.fit(X_train, y_train, sensitive_features=s_train)post_pred = post.predict(X_test, sensitive_features=s_test) report(y_test, post_pred, s_test, "后处理缓解")
目的:完整演示「训练模型 → 公平性评估 → 后处理缓解 → 复检」的公平性工具箱实战流程。
  1. score[sex == 0] -= 0.5人为注入历史偏见,让女性群体整体评分偏低,模拟现实中的社会性偏差。
  2. from fairlearn.metrics import MetricFrame, selection_rate, equalized_odds_difference导入公平性度量的核心工具:分组统计与机会均等差异计算。
  3. mf = MetricFrame(...)将指标函数和敏感特征传入,自动按性别分组计算选择率与准确率。
  4. equalized_odds_difference(y_true, y_pred, sensitive_features=sensitive)计算机会均等差异,衡量真实正例中被正确识别的比例是否组间一致。
  5. ThresholdOptimizer(estimator=model, constraints='equalized_odds', prefit=True)创建后处理缓解器,目标是在不重训模型的前提下满足公平约束。
  6. post.fit(X_train, y_train, sensitive_features=s_train)在训练集上为每个敏感组学习最优决策阈值。
  7. post.predict(X_test, sensitive_features=s_test)预测时必须传入敏感特征,以便模型为不同组选用对应阈值。

常见误区

误区我训练前把性别、种族这些敏感字段删掉,模型总不可能再产生偏见了吧?为什么审计结果还是不过?

正解敏感属性会被「代理变量」借尸还魂。邮编、消费习惯、经常访问的网站等特征都与种族或性别高度相关,模型照样能间接推断出敏感属性。正确的做法是先做公平性审计,确认偏见真实存在,再用工具检测代理变量的间接影响,或者用因果推理切断歧视性中介路径。

为何常见:人们直觉认为「模型看不到敏感属性就不会用它」,忽略了特征之间复杂的相关性网络。

误区两个群体的准确率都差不多,模型肯定是公平的,指标显示有偏见一定算错了。

正解准确率一致并不代表决策公平。如果两个群体中真实正例占比差异很大,即便准确率完全相同,获批率也可能天差地别。公平性指标看的是「决策结果在不同群体间的分布」,准确率是「预测与真实值的吻合度」,两者是两套独立的维度。

为何常见:日常语境里「公平」常被简化理解成「都做得一样好」,而准确率又恰好是「做得好不好」最直觉的度量。

误区我在代码里 import 了 fairlearn,它应该会自动检测并消除模型中的所有偏见吧?

正解工具库只提供「体检设备和手术器械」,不会自动动刀。你需要显式地构建评估流程、解读指标、选择合适的缓解算法,并验证缓解后模型的效果不恶化。整个过程需要专业知识驱动,工具不会替你做决策。

为何常见:「一键式解决方案」的营销印象让人误以为深度学习工具也有魔法开关。

误区SPD 已经归零,各项合规指标都绿了,肯定可以放心上线了。

正解SPD 只是群体层面的一个维度。它不保证机会均等(真实正例是否被同样看见)、不保证预测校准(分数是否可信)、也不保证个体公平(相似个体是否得到相似结果)。不同业务场景需要组合多个指标,单指标归零远不能宣告「完全公平」。

为何常见:单指标最容易量化,初学者容易把「可度量」等同于「已解决」。

误区后处理只动阈值不用重训模型,成本低见效快,所以不管什么场景我都先上 ThresholdOptimizer。

正解后处理只能修正「决策阈值」层面的偏见。如果偏见根源在数据分布或模型内部表示,后处理的效果会很有限,甚至为了拉平结果进一步牺牲准确率。预处理适合数据可控的场景,处理中适合愿意重训的场景,后处理适合只能改接口的部署场景——选型必须按病灶位置来。

为何常见:只看到实现成本,忽略了偏见所在层与治疗手段不匹配的问题。

面试题

Q1. 以下哪项不是 AI 偏见的主要来源?

单选题 · easy

  • A.历史数据偏见(历史中固化的社会歧视)
  • B.样本覆盖偏差(抽样遗漏特定群体)
  • C.代理变量关联(特征间接触发敏感信息)
  • D.服务器硬件故障(GPU 算力不足导致)← 正确答案

答案:D。AI 偏见来自数据、特征和标注过程,硬件故障属于工程问题,不产生系统性歧视。A、B、C 都是教科书常见的偏见来源,D 与公平性无关。

Q2. 统计均等差异(SPD)衡量的是?

单选题 · mid

  • A.两组样本之间预测准确率的算术差值
  • B.两组样本之间正向预测率的算术差值← 正确答案
  • C.两组样本之间真实标签率的总体比值
  • D.两组样本之间模型训练损失的平均差值

答案:B。SPD 计算的是敏感属性两个组别中,模型预测为正例的比例之差,关注「结果分配是否均衡」。准确率、标签率和训练损失都与 SPD 的定义无关,因此 B 正确。

Q3. 下列属于常见公平性量化指标的有?

多选题 · mid

  • A.统计均等差异← 正确答案
  • B.机会均等差异← 正确答案
  • C.预测校准程度← 正确答案
  • D.模型参数量大小

答案:ABC。公平性指标关注群体间预测结果的差异:统计均等差异看整体正向率差,机会均等差异看真实正例中被识别的概率差,校准程度看分数可信度是否组间一致。参数量与公平性无关。

Q4. AIF360 中哪个算法属于预处理阶段的偏见缓解?

单选题 · easy

  • A.重加权(Reweighing)← 正确答案
  • B.对抗去偏(Adversarial Debiasing)
  • C.阈值优化(Threshold Optimizer)
  • D.组输出校准(Calibrated Equalized Odds)

答案:A。重加权在训练之前调整样本权重,属于预处理;对抗去偏发生在训练过程中,属于处理中;阈值优化和输出校准在模型训练后调整预测结果,属于后处理。

Q5. Fairlearn 中用于「按敏感属性分组计算指标」的核心组件是?

单选题 · mid

  • A.MetricFrame← 正确答案
  • B.GridSearchCV
  • C.训练管道 Pipeline
  • D.特征列转换器

答案:A。MetricFrame 接收指标函数和敏感特征后自动产出总体与分组指标对照。GridSearchCV、Pipeline、列转换器都是 Sklearn 通用组件,不承担公平性分组评估的职责。

Q6. 以下属于后处理偏见缓解技术的有?

多选题 · mid

  • A.决策阈值调整← 正确答案
  • B.预测输出校准← 正确答案
  • C.训练样本重加权
  • D.对抗式去偏学习

答案:AB。后处理技术在模型完成训练后生效,通过调整阈值或校准输出分布来拉平组间指标。重加权在训练前,对抗式去偏在训练中,二者不属于后处理。

Q7. 反事实公平的核心思想是?

单选题 · hard

  • A.保持其他特征不变,只改敏感属性后预测结果不变← 正确答案
  • B.让所有群体的模型参数完全相同
  • C.通过删除敏感属性实现群体结果一致
  • D.用同一套数据对每个群体重复训练

答案:A。反事实公平用 do 算子强制切换敏感属性,观察预测分布是否改变。如果不变,说明决策不依赖敏感属性的因果效应。其余选项只是「参数相同」「删特征」「重复训练」,均未触及因果干预。

Q8. 发现模型存在偏见后,最稳妥的第一反应是?

单选题 · easy

  • A.立即更换另一套训练数据集
  • B.先做公平性审计,定位偏见所在层← 正确答案
  • C.直接调低敏感群体的决策阈值
  • D.删除所有与敏感属性相关的列

答案:B。公平性问题的第一步永远是「体检」:用指标定位偏见在数据层、模型层还是决策层,再选择对应治疗方案。盲目换数据、调阈值、删特征都可能掩盖问题或引入新损害。

Q9. 下列关于「公平性与准确率权衡」的表述正确的有?

多选题 · hard

  • A.缓解偏见通常可能牺牲总体准确率← 正确答案
  • B.公平性提升完全不改变模型准确率
  • C.不同公平性定义下权衡程度不同← 正确答案
  • D.数据越公平模型效果一定越好

答案:AC。公平约束相当于给模型增加限制条件,通常会缩小可行解空间,因此可能牺牲准确率;不同公平性指标约束的强度不同,权衡程度也不同。B 和 D 认为没有代价或一定变好,偏离了权衡的本质。

Q10. Fairlearn 后处理 ThresholdOptimizer 的工作方式本质上是?

单选题 · hard

  • A.为每个敏感组学习一个最优决策阈值← 正确答案
  • B.为每个样本动态生成独立阈值
  • C.用对抗网络压制敏感属性特征
  • D.对特征降维后重新训练模型

答案:A。ThresholdOptimizer 在保持模型不变的前提下,为每个敏感属性组搜索一个决策阈值,使整体损失最小且满足公平约束。它不为单样本单独设阈值,也不涉及对抗网络或重训练。