Go back to the English version of the documentation针对间接偏见配置公平性评估
针对间接偏见配置公平性评估
Last updated: 2024年10月25日
在某些条件下,您可以配置公平性评估,以考虑模型部署的间接偏差和直接偏差。
当数据集中的一个特征可用于代表另一个特征时,会发生间接偏差。 例如,在种族不是已知特征的数据集中,邮政编码之类的特征通常可以密切跟踪种族。 评估邮政编码特征是否存在偏差是一种检测间接偏差的方法。 在另一个示例中,客户购买历史记录可能与性别密切对应。 因此,即使不包含任何典型受保护属性 (例如,种族,年龄或性别) 的预测模型也可能指示有偏差的结果。
当满足以下条件时,就可以对间接偏差进行分析:
- 要查找关联,数据集必须足够大(超过 4000 条记录)。
- 训练数据必须包含元字段。 您必须针对一部分数据字段训练该模型。 这些额外字段(即元字段)用于确定间接偏见。 (包括元字段,但不要在模型训练中使用这些元字段。)
- 有效内容日志记录必须包含元字段,并且必须在配置公平性监视器之前运行。 您必须使用此方法上传元字段。 间接偏见的有效内容日志记录需要两种类型的输入:1) 带有值的训练特征;2) 带有值的元字段。
- 配置公平性监视器时,请选择要监视的其他字段。
间接偏见的典型工作流程
但是,您可以确定模型需要不同列的生产前模型和生产模型的间接偏差。 用于评估预生产模型的测试数据与用于评估预生产或生产模型的回馈数据在元列的使用方面不同。 预生产的测试数据需要元列,而在用于预生产或生产模型的回馈数据中不能包含元列。 典型的工作流程可能包含以下步骤:
- 创建同时包含特征列和元列的训练数据。 元列包含不用于训练模型的数据。
- 使用元列配置公平性监控器。
- 在预生产期间,上载同时包含特征列和元列的测试数据。 必须使用导入测试数据 CSV 选项来上载此测试数据。
- 在预生产期间,您可以在不同版本的模型上进行交互,同时使用间接偏差度量来确保最终模型没有偏差。
- 将模型发送到生产后,回馈数据不应有任何元列,而只应包含用于训练模型的特征列。
带有元字段的样本 JSON 有效内容文件
以下样本文件显示了带有用于训练模型的字段和值的 JSON 有效内容。 还包含用于间接偏见分析的元字段和值。 元字段并不用于训练模型,而是保留用于另一种分析,这种分析尝试将它们关联到模型中的偏见。 尽管元字段可以是任何类型的数据,但它们通常是受保护属性,如 sex、race 或 age。
[request_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026]]
}
response_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K", "probability", "prediction", "DRUG"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026, [0.82, 0.07, 0.0, 0.05, 0.03], 0.0, "drugY"]]
}
request_data = <put your data here>
response_data = <put your data here>
records = [PayloadRecord(request=request_data, response=response_data, response_time=18),
PayloadRecord(request=request_data, response=response_data, response_time=12)]
subscription.payload_logging.store(records=records)
元值必须为数组的数组格式:
"meta": {
"fields": ["age", "race", "sex"],
"values": [
[32, "Black", "Male"]
]
}
了解更多信息
父主题: 配置模型评估