0Pricing
Learn AI with Python · 课时

检测机器学习模型中的偏见

受保护属性、差异影响、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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 检测机器学习模型中的偏见
  2. 用于模型可解释性的 SHAP 值
  3. LIME:局部可解释性说明
  4. 人工智能伦理与治理框架
← 返回 Learn AI with Python