评估试验的公平性,以确保结果不会偏向一个组而偏向另一个组。
限制
时间序列试验不支持公平性评估。
评估用于公平性的实验和模型
当您定义实验并生成机器学习模型时,您希望确保您的结果是可靠且不偏不倚的。 当机器学习模型在训练期间学习错误的课程时,可能会导致机器学习模型中的偏差。 当数据不足或数据收集或管理不善导致模型生成预测时结果不佳时,可能会导致此场景。 重要的是评估一个试验以确定偏差迹象,以便在必要时对其进行补救,并建立对模型结果的信任。
AutoAI 包含以下工具,方法和功能,可帮助您评估和修复偏差实验。
定义和术语
公平性属性 -通常使用公平性属性 (例如,性别,种族或年龄) 来度量偏见或公平性。
受监视/参考组 -受监视组是要度量其偏差的公平性属性值。 将受监视组中的值与参考组中的值进行比较。 例如,如果使用 Fairness Attribute=Gender
来度量针对女性的偏差,那么受监视组值为 "女性" ,参考组值为 "男性"。
有利/不利结果 -偏差检测中的一个重要概念是模型的有利和不利结果。 例如, Claim approved
可能被视为有利结果,而 Claim denied
可能被视为不利结果。
不同影响 -用于度量偏差的度量 (计算为受监视组的有利结果百分比与参考组的有利结果百分比的比率)。 如果不同的影响值小于指定的阈值,那么将表示存在偏差。
例如,如果男性提出的 80% 的保险索赔获得批准,但女性提出的索赔只有 60% 获得批准,那么不同的影响是: 60/80 = 0.75。 通常,偏差的阈值为 0.8。 由于此不同影响比率小于 0.8,因此认为模型存在偏差。
请注意,当不同影响比率大于 1.25 [逆值 (1/disparate 影响) 低于阈值 0.8] 时,也会将其视为有偏差。
观看有关评估和提高公平性的视频
观看此视频以了解如何评估机器学习模型以实现公平性,从而确保结果不存在偏差。
此视频提供了一种可视方法来学习本文档中的概念和任务。
在 UI 中应用 AutoAI 试验的公平性测试
打开试验设置。
单击 公平性 选项卡。
启用公平性选项。 选项如下所示:
- 公平性评估: 启用此选项以通过计算不同的影响比率来检查每个管道是否存在偏差。 此方法跟踪管道是否倾向于为一个组提供比另一个组更多的有利 (首选) 结果。
- 公平性阈值: 设置公平性阈值,以根据不同影响比率的值来确定管道中是否存在偏差。 缺省值为 80 ,表示小于 0.80的不同影响比率。
- 有利结果: 指定预测列中被视为有利的值。 例如,该值可以是 "已核准" , "已接受" 或适合您的预测类型的任何值。
- 自动保护属性方法: 选择如何评估作为潜在偏差源的特征。 您可以指定自动检测,在这种情况下, AutoAI 会检测通常受保护的属性,包括: 性别,种族,婚姻状况,年龄以及邮政编码。 在每个类别中, AutoAI 尝试确定受保护组。 例如,对于
sex
类别,受监视组将为female
。
注: 在自动方式下,如果功能部件具有非典型值 (例如,使用英语以外的语言) ,那么该功能部件可能未正确识别为受保护属性。 仅英语支持自动检测。- 手动受保护属性方法: 手动指定结果,并通过从属性列表中进行选择来提供受保护属性。 请注意,当您手动提供属性时,必须定义一个组,并指定该组是可能具有预期结果 (参考组) 还是应该进行复审以检测与预期结果 (受监视组) 的差异。
例如,此图显示了一组手动指定用于监视的属性组。
保存要应用的设置,并运行试验以将公平性评估应用于管道。
注:
- 对于多类模型,可以在预测列中选择多个值以分类为有利或不有利。
- 对于回归模型,可以指定被视为有利或不有利的一系列结果。
- 公平性评估当前不可用于时间序列实验。
用于度量公平性的自动检测属性的列表
启用自动检测后,如果训练数据中存在以下属性,那么 AutoAI 将自动检测这些属性。 属性必须使用英语。
- age
- 公民状态
- 颜色
- 残疾
- ethnicity
- 性别
- 遗传信息
- 残障
- 语言
- 婚姻
- 政治信仰
- pregnancy
- 宗教信仰
- 退伍军人状态
在 Notebook 中应用 AutoAI 试验的公平性测试
您可以在笔记本中训练的 AutoAI 试验中执行公平性测试,并将功能扩展到 UI 中提供的功能之外。
偏差检测示例
在本示例中,通过使用watsonx.aiRuntimePythonAPI (ibm-watson-machine-learning),使用以下输入配置了偏差检测的优化器配置:
- name-试验名称
- prediction_type-问题的类型
- prediction_column-目标列名
- fairness_info-偏差检测配置
fairness_info = {
"protected_attributes": [
{
"feature": "personal_status",
"reference_group": ["male div/sep", "male mar/wid", "male single"],
"monitored_group": ["female div/dep/mar"]
},
{
"feature": "age",
"reference_group": [[26, 100]],
"monitored_group": [[1, 25]]}
],
"favorable_labels": ["good"],
"unfavorable_labels": ["bad"],
}
from ibm_watson_machine_learning.experiment import AutoAI
experiment = AutoAI(wml_credentials, space_id=space_id)
pipeline_optimizer = experiment.optimizer(
name='Credit Risk Prediction and bias detection - AutoAI',
prediction_type=AutoAI.PredictionType.BINARY,
prediction_column='class',
scoring='accuracy',
fairness_info=fairness_info,
retrain_on_holdout=False
)
评估结果
您可以查看每个管道的评估结果。
- 从 " 试验摘要 " 页面中,单击管道排行榜的过滤器图标。
- 选择试验的 "影响指标"。 此选项为每个受监视组评估一个常规度量值和一个度量值。
- 查看不同影响的管道度量,以确定您是存在偏差问题,还是仅确定哪个管道对公平性评估执行得更好。
在此示例中,根据准确性排名第一的管道还具有处于可接受限制范围内的不同收入分数。
偏差缓解
如果在实验中检测到偏差,可以通过使用 "组合评分器 "来优化实验,从而减轻偏差: accuracy_and_disparate_impact
或 "r2_and_disparate_impact
,二者均由开源LALE 软件包定义。
在搜索和优化过程中使用组合记分器来返回公平和准确的模型。
例如,要优化分类试验的偏差检测,请执行以下操作:
- 打开试验设置。
- 在 " 预测 " 页面上,选择优化试验中的 准确性和不同影响 。
- 重新运行试验。
准确性和不同影响 度量值为分类实验的准确性和公平性创建组合得分。 更高的分数表示更好的性能和公平性度量。 如果不同影响分数介于 0.9 到 1.11 (可接受的级别) 之间,那么将返回准确性分数。 否则,将返回小于准确性分数的不同影响值,并返回指示公平性差距的较低 (负) 值。
后续步骤
父主题: AutoAI 概述