确定反事实逻辑配对 (CLP) 是您用例的合适技术后,您可以通过以下步骤应用它
- 创建
CounterfactualPackedInputs
的实例,其中包含原始数据和反事实数据。 - 衡量 翻转率和翻转次数,以确定是否需要干预。
- 如果需要干预,请传递 原始输入数据、反事实数据、原始模型和反事实损失到反事实模型。
- 通过衡量翻转率和翻转次数来评估 CLP 的影响。
要查看将 CLP 应用于 Keras 模型的示例,请参阅使用 Keras 教程进行反事实逻辑配对。
创建 CounterfactualPackedInputs
的实例
要创建反事实数据集,首先确定您要评估的术语和特征,这些术语和特征在删除或替换后可能会改变模型的预测。
了解要评估的术语和特征后,您需要创建 CounterfactualPackedInputs
的实例,其中包含原始输入和反事实数据。原始输入应该是您用于训练 Keras 模型的数据集。反事实数据具有 original_x
值、counterfactual_x
值和 counterfactual_sample_weight
。反事实值应与原始值几乎相同,区别在于一个或多个敏感属性被删除或替换。反事实数据集的质量很重要,因为它用于将原始值和反事实值之间的损失函数配对,目的是确保当敏感属性不同时,模型的预测不会改变。
有关如何开发此反事实数据集的详细信息,请参阅有关创建自定义反事实数据集的笔记本。
衡量翻转次数和翻转率
翻转 定义为分类器在示例中引用的敏感属性发生变化时给出不同的决策。它捕获分类器在身份属性存在、不存在或更改的情况下改变其预测的情况。在评估分类器的真实值(分数)时,应使用更连续的指标。
翻转次数
翻转次数衡量分类器在给定示例中的身份术语发生变化时给出不同决策的次数。
- 总体翻转次数:从正到负和从负到正的预测翻转总数。
- 从正到负预测翻转次数:预测标签从正变为负的翻转次数。
- 从负到正预测翻转次数:预测标签从负变为正的翻转次数。
翻转率
翻转率衡量分类器在给定示例中的身份术语发生变化时给出不同决策的概率。
- 总体翻转率:总体翻转次数除以示例总数
- 从正到负预测翻转率:从正到负的翻转次数除以反事实数据集中正例的总数
- 从负到正预测翻转率:从负到正的翻转次数除以反事实数据集中负例的总数
在使用 公平性指标 计算翻转率和翻转次数后,您可以确定分类器是否根据数据中的敏感属性做出不同的预测。您可以使用示例计数和置信区间来确定您是否有足够的数据来应用 CLP 并从翻转率中得出结论。较高的翻转率和翻转次数表明这种行为正在发生,并且可以用来决定 CLP 是否适合您的用例。此决定特定于您的模型,并取决于诸如可能对最终用户造成的危害以及模型所用产品的因素。
将反事实逻辑配对应用于您的 Keras 模型
要使用 CLP,您需要您要修复的原始 Keras 模型、原始训练数据集和反事实数据集。确定应为逻辑配对应用什么 反事实损失
。有了它,您可以使用所需的反事实损失函数和原始模型中的损失函数构建反事实模型。
应用 CLP 后,您应该计算翻转率和翻转次数,以及任何其他指标(如整体准确率)的变化,以衡量应用此技术带来的改进。