林阿姨在社区开了十年餐厅,外卖平台上的评分高达 4.9 分,她一度以为所有顾客都满意。直到一天,她翻看评论区的差评,发现写差评的几乎都是老年顾客——有的抱怨菜太辣,有的说菜单字太小看不清。总评分 4.9,是因为年轻人的五星好评把老年人的一星差评“平均”掉了。 这和机器学习模型的处境一模一样。模型上线后,我们通常会盯住整体准确率、整体 AUC 这些“总评分”。整体指标好看,不代表对每个人群都公平:年轻人用得顺手的信贷审批模型,可能对中老年用户误拒率高出几倍;城市数据训练出的医疗模型,在基层地区可能频频误判。如果不把用户按性别、年龄、地域等维度“切”开看,偏见就像藏在平均值背后的差评,直到投诉爆发才被发现。 这篇文章教你一套“分片体检”方法:先选切分维度,再逐个群体算公平性指标,用率差和比率量化差距,最后追溯根因并搭起持续监控体系。学会它,你就能像林阿姨一样,在差评爆发前找到那个被平均掉的角落,让模型对每一位用户负责。

岗位关联

模型监控与 AI 伦理治理工程师必须掌握分片公平性分析,才能在偏见投诉爆发前发现盲区,让模型对每一位用户负责。

目录
  1. 可视化演示
  2. 公平性背景
  3. 切分维度选择
  4. 分片指标计算
  5. 差异度量方法
  6. 偏见识别分析
  7. 监控治理闭环
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示用户群分片下的模型公平性指标的核心机制,通过输入/处理/存储/输出四种模式展示关键概念与交互流程。

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

用户群分片下的模型公平性指标:用户群分 用户群分片维度设计与切片策略 分群体性能指标计算与差异度量 核心机制可视化 用户群分片下的模型公平性指标整体架构与关键组件

公平性背景

林阿姨第一次意识到要“分人群看数据”,是在一位常客阿姨当面说:“你们家的菜越来越辣了,我们老姐妹都不敢来了。”她拿出后台数据一查,果然,50 岁以上顾客的复购率只有 20%,而年轻人是 75%。整体数据很好看,但切割开之后,问题清清楚楚。

模型上线后的绩效评估也面临同样的陷阱。算法团队习惯了看测试集上的整体准确率:0.92、0.95,漂亮得可以写进周报。可一旦把用户按年龄切片,老年用户的准确率可能掉到 0.7 以下;按地域切片,偏远地区用户的召回率可能只有城市用户的一半。整体指标是“平均数”,平均数最擅长的就是隐藏结构性不公。

要从数学上理解这件事,先得知道模型预测的四种结果:真正例 TP(实际为真,预测也为真)、真负例 TN(实际为假,预测为假)、假正例 FP(实际为假,预测为真)、假负例 FN(实际为真,预测为假)。整体准确率就是判断对的比例:

Accuracy=TP+TNTP+TN+FP+FN\displaystyle \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}}

1. 分子:判断正确的样本:真正例与真负例之和,代表模型给出正确预测的用户数。

TP+TN\displaystyle \text{TP} + \text{TN}

2. 分母:全体样本:四种结果全部加起来,就是所有被评估的用户。

TP+TN+FP+FN\displaystyle \text{TP} + \text{TN} + \text{FP} + \text{FN}

3. 整体准确率:正确数除以全体数,得到 0 到 1 之间的比例,越大说明整体判断越准。

TP+TNTP+TN+FP+FN\displaystyle \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}}

整体准确率就像餐厅总评分,只有把它按人群切开来算,才会露出藏在平均值背后的差评。接下来我们就要回答一个问题:到底按什么来切。

切分维度选择

发现总评分不可靠后,林阿姨做的第一件事,是把顾客分类。她按年龄分组:30 岁以下、30-50 岁、50 岁以上;又按口味分组:吃辣、不吃辣;再按就餐方式分组:堂食、外卖。每一类顾客的满意度单独统计,问题一下子清楚了——50 岁以上、不吃辣的群体满意度最低。

在模型评估里,“分类”对应的是选定切分维度。常见的起点有三个:性别(男性/女性/非二元)、年龄(如 18-30、30-50、50+)、地域(按省份或城市层级)。这些维度直接关联用户身份,最容易被监管部门和社会舆论关注。更进一步,可以把多个维度交叉,比如“50 岁以上 + 女性”,定位到更细的群体。

切得越细,问题看得越清楚,但代价是每个格子里的样本量迅速缩水。“50 岁以上 + 女性 + 偏远地区 + 月消费低于 100 元”可能只有三十条样本,算出来的准确率像抛硬币一样随机。因此粒度要在“可解释”和“样本充足”之间平衡。群体样本量的定义很简单:

Ng=∣{i:group(i)=g}∣\displaystyle N_g = |\{ i : \text{group}(i) = g \}|

1. 群体标记:把每个用户 i 按照选定的维度打上一个群体标签 g。

group(i)=g\displaystyle \text{group}(i) = g

2. 集合构造:把所有标签为 g 的用户收集起来,形成一个集合。

{i:group(i)=g}\displaystyle \{ i : \text{group}(i) = g \}

3. 取集合大小:用 |·| 数出这个集合有多少个用户,得到该群体样本量 N_g。

Ng=∣⋯∣\displaystyle N_g = |\cdots|

林阿姨切分后发现了老年群体这条线索,模型工程师切分后同样会发现那个需要重点关照的人群。切分是公平性分析的地基,下一步是在每个群体内部计算指标。

分片指标计算

林阿姨按年龄切完,给每类顾客单独做了满意率统计:年轻人 92%,中年人 85%,老年人只有 60%。她发现,老年群体的“好评率”不光低,而且差评集中在“菜太辣”这个原因上——这为她后面定位问题提供了关键信息。

模型同理。切分用户群之后,要对每个群体单独计算混淆矩阵。所谓混淆矩阵,就是把这群用户的 TP、TN、FP、FN 四种数字排成一张 2×2 表格。基于这张表,可以计算属于这个群体的准确率、召回率、假正率 FPR、假负率 FNR。其中召回率尤其值得关注,因为它衡量“真正有问题的人被找出来多少”——在医疗筛查、金融风控中,漏掉一个有问题的人(FN)代价极高。

Recallg=TPgTPg+FNg\displaystyle \text{Recall}_g = \frac{\text{TP}_g}{\text{TP}_g + \text{FN}_g}

1. 群体正例数:统计群体 g 中真正例 TP_g,衡量模型在该群体中命中了多少真正的正样本。

TPg\displaystyle \text{TP}_g

2. 漏掉的正例数:群体 g 中被误判为负的正样本 FN_g,即漏诊数量。

FNg\displaystyle \text{FN}_g

3. 召回率 = 命中数 / 全部正例:分子除以分子与漏诊之和,得出该群体真正的“抓全率”。

TPgTPg+FNg\displaystyle \frac{\text{TP}_g}{\text{TP}_g + \text{FN}_g}

通过分片召回率,林阿姨发现老年人“反复不满意”的共性问题,模型工程师则能发现某个群体“反复被漏判”的系统性问题。除了准确率和召回率,FPR 与 FNR 也要分片计算,它们分别告诉你“没病的人被误诊”和“有病的人被漏诊”的比例,很多公平性审计公式都建立在它们之上。

差异度量方法

林阿姨手上有了一串数字:青年满意率 92%,中年 85%,老年 60%。光是“老年满意度低”还不够,她需要向店员、向投资人说明白的是一句话:“低了到底多少?”她算了一下,老年比整体低了 30 个百分点,这就是差异的量化。

模型团队同样需要把“某个群体指标偏低”翻译成可比较、可监控的数字。最直观的是率差:该群体指标与整体指标之差,负值代表落后于平均水平。另一个视角是最大最小比:最差群体与最好群体指标之比,越接近 1 越公平。公平性文献中还有统计奇偶差(Statistical Parity Difference)与机会均等差(Equalized Odds Difference),本质都是把敏感属性上的指标差异量化。

Δg=Accg−Accoverall\displaystyle \Delta_g = \text{Acc}_g - \text{Acc}_{\text{overall}}

Ratio=min⁡gAccgmax⁡gAccg\displaystyle \text{Ratio} = \frac{\min_g \text{Acc}_g}{\max_g \text{Acc}_g}

1. 群体准确率:第 3 节算出的分片准确率,代表这个群体的平均判断正确程度。

Accg\displaystyle \text{Acc}_g

2. 整体准确率:全体用户混合在一起的准确率,代表“大平均”。

Accoverall\displaystyle \text{Acc}_{\text{overall}}

3. 做差:两者相减,正数表示高于整体,负数表示低于整体,绝对值越大差异越明显。

Accg−Accoverall\displaystyle \text{Acc}_g - \text{Acc}_{\text{overall}}

1. 最差与最好:在所有群体中找出准确率最低值和最高值。

min⁡gAccg,max⁡gAccg\displaystyle \min_g \text{Acc}_g, \quad \max_g \text{Acc}_g

2. 求比值:最小值除以最大值,0.9 以上算健康,跌破 0.8 就要拉响警报。

min⁡gAccgmax⁡gAccg\displaystyle \frac{\min_g \text{Acc}_g}{\max_g \text{Acc}_g}

有了率差和最大最小比,林阿姨可以冷静地说:“老年群体满意度比整体低 30 个点,最大最小比只有 0.65。”模型工程师也能拿着同样的数字上会汇报,并且用显著性检验确认这不是抽样噪声——这是下一节的内容。

偏见识别分析

林阿姨没有急着把菜全部改成不辣。她先问了两个问题:老年顾客的评价数量够不够多?“觉得辣”的差评,到底集中在同一个人身上,还是普遍现象?如果只有三位老人写了差评,那 60% 的满意率可能只是噪声。

模型分析同理,“某个群体指标低”不等于“模型对这个群体有偏见”,在做结论前要过三关。第一关:样本量校验,群体样本过少时指标波动极大,先补数据再下结论。第二关:显著性检验,用统计方法确认差距是否显著大于随机波动,它的直觉是“这个群体准确率与整体的差距,除以标准误”。第三关:数据分布检查,观察特征分布、正负样本比例、缺失率是否偏移,很多时候是训练数据本身有偏差。

z=pg−poverallp(1−p)Ng\displaystyle z = \frac{p_g - p_{\text{overall}}}{\sqrt{\frac{p(1-p)}{N_g}}}

1. 分子:群体与整体的率差:把群体准确率 p_g 与整体准确率 p_overall 相减,这是待检验的差异量。

pg−poverall\displaystyle p_g - p_{\text{overall}}

2. 分母:标准误:p(1-p)/N_g 是率的方差,开根号后代表“这个估计的波动幅度”,样本越少波动越大。

p(1−p)Ng\displaystyle \sqrt{\frac{p(1-p)}{N_g}}

3. z 分数:差异除以波动幅度,z 的绝对值越大,说明差异越不可能是随机造成的。

z=⋯⋯\displaystyle z = \frac{\cdots}{\cdots}

过了显著性检验,还要继续往前追问:为什么老年群体差?是训练样本里老年图像太少,还是标注员对老年用户有系统性误标,还是“年龄”背后其实是“收入水平”的代理变量?这一步是从“指标异常”走向“模型偏见”的关键证据链。林阿姨最后查明,问题不在辣,而在于菜单字体太小——她的归因完全改变了整改方向;模型团队也要用同样的严谨去定位真正的原因。

监控治理闭环

三个月后,林阿姨的餐厅改了菜单:大字号菜单、微辣选项,还给老年顾客专门留了靠门的座位。更关键的是,她把“按人群看满意度”变成了每月雷打不动的动作:细分到年龄和口味的满意率报表、一条 70% 的红线,任何群体跌破红线,当月就要做专项复盘。平均分依然要看,但再也不是唯一的指标。

模型公平性治理同样是长期闭环,而不是上线前的一次体检。成熟的团队会建立分片监控报表,每周或每月自动输出各群体的准确率、召回率、FPR/FNR 与差异度量;为每个群体设置预警阈值,例如最大最小比跌破 0.8 自动建工单;最后把发现的问题反馈回训练环节,补充数据、修正标注、调整特征,形成“发现-定位-优化-再监控”的循环。

Ratio≥τ\displaystyle \text{Ratio} \geq \tau

1. 最小比值:第 4 节定义的最大最小比,是公平性监控的核心看板数字。

Ratio=min⁡gAccgmax⁡gAccg\displaystyle \text{Ratio} = \frac{\min_g \text{Acc}_g}{\max_g \text{Acc}_g}

2. 阈值 τ:团队根据业务风险设定的红线,τ 越大要求越严格。

τ\displaystyle \tau

3. 比较判断:比值高于阈值时放行,低于阈值时触发预警与人工介入。

Ratio≥τ\displaystyle \text{Ratio} \geq \tau

到这一步,林阿姨的餐厅已经有了一套完整的顾客满意度治理体系:分人群统计、量化差距、定位根因、持续监控。模型团队也拥有了同样完整的公平性保障闭环:分片指标计算、差异度量、偏见识别、监控预警。这套方法不是要让每个群体得分完全一样,而是让每一个被服务的人都不被平均值吞没。

AI 应用场景

信贷风控模型的群体公平性监控

阶段:模型部署后的性能监控与质量评估

解决的问题:传统做法只盯整体坏账率或整体 KS 值,某省用户因训练样本稀少被系统性误拒,引发大量客诉。按地域分片计算各群体的拒绝率和误拒率,能第一时间发现“某区域客户通过率异常低”的盲区。

具体案例:某消费金融公司线上模型整体批核率 75%,按省份切片后发现某西北省份批核率仅 52%。经排查,该省训练样本仅占 1.2%,且本地用户的收入编码与其他省份差异大,特征分布偏移导致模型误判。团队补充该省数据并做了特征归一化,批核率回升到 70%,客诉量下降 60%。

医疗 AI 分诊系统的年龄段公平性评估

阶段:临床辅助决策模型上线后的分片效果复审

解决的问题:整体灵敏度 90% 看似优秀,但老年患者的眼底图像常因白内障混浊被误判。若只按整体汇报,医生会误以为模型对所有人都同样可靠。按年龄段分片计算灵敏度与特异度,才能定位高风险群体。

具体案例:某三甲医院 AI 糖网筛查系统整体灵敏度 90.2%,按年龄分片后 60 岁以上患者灵敏度仅 71.4%。原因在于训练集中老年眼底图像少且常伴有其他病变干扰。团队用老年图像增强与迁移学习重新训练,老年组灵敏度提升到 84%,并通过了最大最小比阈值检查。

内容推荐系统的小众群体曝光公平性

阶段:推荐系统在线指标监控与内容生态治理

解决的问题:推荐系统整体点击率 8%,但 60 岁以上用户点击率仅 3%,且被推荐内容长期集中在养生资讯,信息茧房加剧。按年龄、地域分片计算各群体的点击率与多样性指标,能暴露被平均掩盖的“少数派”体验问题。

具体案例:某短视频平台在分片监控中发现,60 岁以上用户对新闻与戏曲类内容的曝光占比不足 2%,而该群体贡献了 40% 的观看时长。运营团队调整了内容池结构和召回权重,老年用户点击率从 3% 提升到 5.5%,人均使用时长明显增长。

Python 演示

python62 行
import numpy as np def confusion_counts(y_true, y_pred):    y_true = np.asarray(y_true)    y_pred = np.asarray(y_pred)    tp = int(np.sum((y_true == 1) & (y_pred == 1)))    tn = int(np.sum((y_true == 0) & (y_pred == 0)))    fp = int(np.sum((y_true == 0) & (y_pred == 1)))    fn = int(np.sum((y_true == 1) & (y_pred == 0)))    return tp, tn, fp, fn def slice_metrics(y_true, y_pred, groups):    tp, tn, fp, fn = confusion_counts(y_true, y_pred)    overall = {        'accuracy': (tp + tn) / max(tp + tn + fp + fn, 1),        'recall': tp / max(tp + fn, 1),        'fpr': fp / max(fp + tn, 1),        'fnr': fn / max(fn + tp, 1)    }    slices = {}    for g in sorted(set(groups)):        mask = np.asarray(groups) == g        tp, tn, fp, fn = confusion_counts(y_true[mask], y_pred[mask])        slices[g] = {            'size': int(mask.sum()),            'accuracy': (tp + tn) / max(tp + tn + fp + fn, 1),            'recall': tp / max(tp + fn, 1),            'fpr': fp / max(fp + tn, 1),            'fnr': fn / max(fn + tp, 1)        }    return overall, slices def fairness_report(y_true, y_pred, groups):    overall, slices = slice_metrics(y_true, y_pred, groups)    accs = {g: v['accuracy'] for g, v in slices.items()}    max_acc = max(accs.values())    min_acc = min(accs.values())    max_min_ratio = min_acc / max_acc    worst = min(accs, key=accs.get)    report = {        'overall': overall,        'slices': slices,        'max_min_ratio': max_min_ratio,        'worst_group': worst,        'accuracy_gap': overall['accuracy'] - accs[worst]    }    return report if __name__ == '__main__':    rng = np.random.default_rng(42)    n = 2000    group = rng.choice(['young', 'middle', 'senior', 'elsewhere'], size=n)    prob = np.where(group == 'young', 0.92, np.where(group == 'middle', 0.85, np.where(group == 'senior', 0.62, 0.80)))    prob = np.clip(prob + rng.normal(0, 0.04, n), 0, 1)    y_true = (rng.random(n) < prob).astype(int)    y_pred = (rng.random(n) < prob).astype(int)    report = fairness_report(y_true, y_pred, group)    print('整体准确率:', round(report['overall']['accuracy'], 3))    for g, v in report['slices'].items():        print(f"{g}: 样本{v['size']} 准确率{v['accuracy']:.3f} 召回率{v['recall']:.3f} FPR{v['fpr']:.3f}")    print('最大最小比:', round(report['max_min_ratio'], 3))    print('最差群体:', report['worst_group'], ' 与整体差距:', round(report['accuracy_gap'], 3))
目的:一键生成模拟模型预测数据,按群体自动计算准确率、召回率、FPR/FNR,并输出最大最小比与最差群体,复现“整体好看但分片藏雷”的公平性分析流程。
  1. def slice_metrics(y_true, y_pred, groups):入口函数,同时接收真实标签、预测结果、群体标签三份数据,这是分片分析的起点。
  2. tp = int(np.sum((y_true == 1) & (y_pred == 1)))用布尔逻辑统计真正例,四个数字构成混淆矩阵的地基。
  3. mask = np.asarray(groups) == g布尔掩码一次筛出当前群体,后面所有指标都只在这批样本上计算。
  4. slices[g] = {每个群体独立记录指标,不再与全量数据混在一起,这是避免“平均掩盖”的关键。
  5. max_min_ratio = min_acc / max_acc最差群体除以最好群体,一行代码算出公平性核心看板数字。
  6. worst = min(accs, key=accs.get)用字典取值函数找出准确率最低的群体,快速定位最大盲区。
  7. prob = np.where(group == 'young', 0.92, ...)模拟不同群体真实概率的差异,相当于预设了“林阿姨餐厅”的故事背景。
  8. report = fairness_report(y_true, y_pred, group)一次调用输出完整公平性体检报告,对应线上监控的自动化脚本雏形。

常见误区

误区模型在测试集上准确率 95%,上线后整体指标也很稳定,说明模型对所有用户都一视同仁,不需要做分片分析。

正解整体准确率是“大平均”,它天然会掩盖结构性不公。就像林阿姨餐厅的总评分 4.9,掩盖了老年群体 60% 的满意率。必须按敏感维度分片计算,看每个群体自己的准确率、召回率和 FPR/FNR,才能发现被平均值藏起来的盲区。

为何常见:汇报文化让我们习惯了报一个漂亮的总数,而“整体指標好看”恰好是最容易获得的安全感。

误区老年群体准确率 68%,低于整体 90%,所以模型一定歧视老年人,应该立刻下架整改。

正解指标低只是“现象”,不等于“偏见结论”。要先检查样本量是否足够(30 个样本算出的 68% 可能是噪声),再做显著性检验确认差距是否可靠,最后排查数据分布与标注过程。林阿姨最初怀疑菜太辣,最后发现是菜单字太小——归因错误会让整改方向完全跑偏。

为何常见:人脑天然倾向把差异归因于意图,看到数字差异就急着找“坏人”,忽略了统计噪声和数据质量问题。

误区把各群体的准确率校准到 90%,最大最小比拉到 0.95 以上,模型就绝对公平了。

正解公平性不是一个单指标概念。准确率一致只是“人口均等”的一种近似;真正的公平还需要看机会均等(各群体 FPR/FNR 是否一致)、校准误差等维度。一个模型可能准确率相同,但对某个群体漏诊率极高,相当于“平均分相同但偏科严重”。

为何常见:商业指标天然偏好“一个数达标”,而公平性本质是多维的,容易被简化成单一指标考核。

误区为了“看得更细”,把年龄、性别、地域、收入、设备全部交叉,切成几百个群体来分析,认为这样最严谨。

正解粒度过细会导致每个格子样本量骤减,准确率的置信区间变得极大,算出的差异可能全是噪声。合适的做法是“先粗后细”:先用性别、年龄、地域等核心维度定位异常,再对可疑群体做交叉验证,同时保证每个分片样本量达到统计要求。

为何常见:数据分析师习惯了“维度下钻”的探索习惯,却忽略了统计功效对样本量的硬性要求。

面试题

Q1. 模型整体准确率 90%, 老年群体 68%, 这说明什么?

单选题 · easy

  • A.模型对所有群体都公平
  • B.可能存在群体偏见盲区← 正确答案
  • C.模型泛化能力一定差
  • D.两个群体样本量一定不足

答案:B。整体指标是“大平均”, 老年群体 68% 明显低于整体 90%, 说明存在被平均掩盖的盲区。泛化能力差和样本量不足都是可能原因,但需要进一步验证,不能直接下定论。最合理的行动是先意识到这里可能有群体层面的不公平问题。

Q2. 以下哪个不是常用的公平性切分维度?

单选题 · easy

  • A.用户的性别属性
  • B.用户的年龄区间
  • C.用户的ID奇偶性← 正确答案
  • D.用户的所在地区

答案:C。ID 奇偶性是一种随机分组方式,没有业务含义,不能解释为公平性问题。性别、年龄、地域都是受关注的敏感属性维度,法律和伦理上要求确保这些群体得到公平对待。

Q3. 分片公平性指标计算的第一步是什么?

单选题 · easy

  • A.直接使用整体混淆矩阵
  • B.每个群体独立统计TP等← 正确答案
  • C.只统计正样本的总数量
  • D.先调整全体的分类阈值

答案:B。分片分析的核心是“独立统计再比较”, 必须先按群体分别统计 TP/TN/FP/FN。直接使用整体混淆矩阵会再次被平均掩盖,只统计正样本数量或调整阈值都无法得到群体层面的真实表现。

Q4. 率差这个指标描述的是

单选题 · mid

  • A.群体指标与整体指标的差← 正确答案
  • B.群体之间指标的平均方差
  • C.所有群体准确率的乘积值
  • D.模型预测误差的平方之和

答案:A。率差 = 群体指标 − 整体指标,负值表示该群体落后于平均水平。平均方差是离散程度概念,乘积值和误差平方和都与公平性差异度量无关。率差的价值在于用一个简单差值把“被平均”的程度摆到台面上。

Q5. 某群体只有 30 个样本,准确率显著低,首先应

单选题 · mid

  • A.立即下架模型重新训练
  • B.检查样本量是否足够← 正确答案
  • C.立刻修改标注重新训练
  • D.为该群体提高决策阈值

答案:B。样本量过小时指标波动极大,30 个样本的准确率可能因为一两个预测变化就剧烈跳动。正确顺序是:先确认样本量是否足以支撑结论,再考虑数据质量、特征分布等更深层原因。直接下架或改标注都是草率的。

Q6. 样本不平衡对分片召回率的影响是

单选题 · mid

  • A.对分片指标没有任何影响
  • B.正样本少时召回率波动大← 正确答案
  • C.只影响整体准确率的数值
  • D.只影响负样本FPR值

答案:B。召回率的分母是“该群体真正的正例数”。当正样本很少时,分子 TP 每变动一个,召回率都会剧烈变化,统计上极不稳定。这与整体准确率或 FPR 无关,是分片分析中特别需要警惕的样本量陷阱。

Q7. 最大最小比越接近 1 说明

单选题 · mid

  • A.群体间的指标差异越小← 正确答案
  • B.群体间的指标差异越大
  • C.整体准确率不断下降中
  • D.最差群体样本量在减少中

答案:A。最大最小比 = 最差群体指标 ÷ 最好群体指标。比值越接近 1, 说明最差与最好的差距越小,公平性越好。反之比值越小说明群体间差异悬殊,需要排查原因。

Q8. 以下哪些属于常用的公平性敏感切分维度?

多选题 · hard

  • A.用户的性别属性← 正确答案
  • B.用户的年龄区间← 正确答案
  • C.用户的所在地区← 正确答案
  • D.用户的ID奇偶性

答案:ABC。性别、年龄、地域是公认的敏感属性,也是监管和伦理审查的重点维度。ID 奇偶性是随机分组,没有业务解释力,不能作为公平性切分维度。选择切分维度要同时考虑“业务相关”和“伦理敏感”两个标准。

Q9. 模型偏见盲区可能来源于

多选题 · hard

  • A.训练数据中群体样本过少← 正确答案
  • B.标注过程存在系统性偏见← 正确答案
  • C.用敏感属性替代特征建模← 正确答案
  • D.模型参数量设置得过大

答案:ABC。样本不足导致群体特征学习不充分,标注偏见会把错误模式刻进模型,代理特征(如用地域代替收入)会引入隐性歧视,这三者是公平性盲区的典型来源。模型参数量大小与群体不公平没有直接因果关系。

Q10. 以下哪些可以用于量化群体间公平性差异?

多选题 · extreme

  • A.分组率差的绝对值大小← 正确答案
  • B.群体间最大最小指标比率← 正确答案
  • C.混淆矩阵中的FNR差异← 正确答案
  • D.整体AUC的提升幅度

答案:ABC。率差、最大最小比、FNR 差异都是从分片指标出发的公平性量化工具,分别从绝对差距、相对差距、漏诊率差异三个视角刻画不公平。整体 AUC 提升只反映平均水平变好,无法揭示群体间的差异,甚至可能在提升整体 AUC 的同时牺牲某个群体的公平性。