检测机器学习模型中的偏见
受保护属性、差异影响、fairlearn 指标、均等优势和人口统计均等。
检测机器学习模型中的偏见 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。
什么是算法偏差
当模型的预测系统性地使由敏感属性(性别、种族、年龄)定义的某个群体处于不利地位时,就称该模型存在偏差。偏差通常源于失衡的训练数据,并可能在招聘、借贷或医疗决策中造成实际伤害。
敏感特征
敏感特征是用于衡量公平性的属性,例如性别或族裔。公平性指标会比较该特征所定义的不同群体之间的模型行为,即使该特征没有作为模型输入使用。
人口统计平等
人口统计平等要求各群体获得正向预测的比例相同。如果贷款模型批准了群体 A 中 60% 的申请,却只批准了群体 B 中 35% 的申请,那么无论申请人的实际信用状况如何,都违反了人口统计平等原则。
# P(prediction = 1 | group = A) == P(prediction = 1 | group = B)均等赔率
均等赔率更加严格:它要求各群体的真正例率和假正例率相同。由于这一指标以实际标签为条件,因此只要模型对各群体的预测准确度相同,就允许不同的选择率。
# TPR and FPR equal across groups
# P(pred=1 | y=1, A) == P(pred=1 | y=1, B)
# P(pred=1 | y=0, A) == P(pred=1 | y=0, B)平等与赔率的比较
这些指标可能相互冲突:
- 人口统计平等忽略真实标签,因此当各群体的基准率确实不同时,可能会强行要求各项比率相同
- 均等赔率尊重真实标签,但允许不同的选择率
没有任何单一指标在所有情况下都正确;应根据具体情境和法律要求进行选择。
介绍公平学习库
公平学习库是一个用于衡量和缓解不公平性的 Python 库。它的核心衡量工具是 MetricFrame,可以按敏感群体拆分并计算任意指标。
import pandas as pd
from fairlearn.metrics import MetricFrame
from sklearn.metrics import accuracy_score, selection_rate构建 MetricFrame
您需要传入一个指标字典、真实标签、预测结果以及敏感特征。公平学习库会分别针对每个群体计算所有指标。
mf = MetricFrame(
metrics={
"accuracy": accuracy_score,
"selection_rate": selection_rate,
},
y_true=y_test,
y_pred=y_pred,
sensitive_features=X_test["gender"],
)各群体结果
by_group 属性会返回每个群体的各项指标表格,让您一眼就能看出差异。
print(mf.by_group)
# accuracy selection_rate
# gender
# female 0.81 0.34
# male 0.83 0.59总体结果与差异
公平学习库还会报告汇总视图:overall 表示整个数据集;difference() 和 ratio() 等辅助方法则会概括最佳群体与最差群体之间的差距。
print(mf.overall)
print(mf.difference(method="between_groups"))
# selection_rate 0.25 -> 25 point gap between groups可视化差异
将 by_group 绘制成条形图,可以把数字转化为直观的图像。同一指标的条形之间如果存在明显高度差,就清楚地表明模型对不同群体采取了不同的处理方式。
mf.by_group.plot.bar(
subplots=True,
layout=[1, 2],
figsize=(10, 4),
title="Metrics by group",
)从检测到缓解
量化偏差后,公平学习库提供了缓解算法,例如 ExponentiatedGradient,以及使用 ThresholdOptimizer 进行后处理的算法。这些算法会重新训练模型或调整阈值,以满足公平性约束。检测始终是第一步:没有测量过的问题就无法修复。
快速检查
测试您对公平性的理解。
回顾
您学会了如何检测偏差:
- 人口统计平等使各群体的正向率相同
- 均等赔率使 TPR 和 FPR 相同,并以标签为条件
- 公平学习库 MetricFrame会针对每个
敏感特征群体计算一个指标字典 - 将
by_group可视化以发现差异,然后应用缓解措施
常见问题解答
「检测机器学习模型中的偏见」课时是免费的吗?
是的 — 「检测机器学习模型中的偏见」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。
「检测机器学习模型中的偏见」这节课中我会学到什么?
受保护属性、差异影响、fairlearn 指标、均等优势和人口统计均等。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn AI with Python 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「检测机器学习模型中的偏见」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn AI with Python 课中编写并运行代码吗?
能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 检测机器学习模型中的偏见
- 用于模型可解释性的 SHAP 值
- LIME:局部可解释性说明
- 人工智能伦理与治理框架