为什么我需要为指标提供(非)特权属性值?
Why do I need to provide (un)privileged attribute values for metrics?
我正在使用 AI Fairness 360 包获取数据集的公平性指标。我已经将数据转换为 StandardDataset
实例。如果我理解正确,这会将受保护属性的所有值更改为 1 或 0:1 表示“属于此属性的特权组”,0 表示“属于此属性的非特权组”。
计算公平性指标时,我需要创建一个 BinaryLabelDatasetMetric
实例,我需要为其指定我认为哪些受保护属性的组合是我的 privileged/unprivileged 组。但是为什么我需要提供 privileged/unprivileged 的属性值呢?转换为 StandardDataset
后,所有特权值均为 1,非特权值为 0。我是否遗漏了什么?因为如果不是,只需将其编码为 1 就容易得多。
总而言之,我的问题是:StandardDataset
中受保护属性的值可以是 1 或 0 以外的任何值吗?如果是,在什么情况下? (如果不是,似乎 API 可以简化很多,只需要受保护属性的名称而不是值。)
can the values for protected attributes in a StandardDataset ever be
anything other than 1 or 0?
是的。它们也可以是原始数据集中的其他值,但是一旦被 StandardDataset
转换,它们将被转换为 0 和 1。来自 source:
privileged_classes (list(list or function)): Each element is
a list of values which are considered privileged or a boolean
function which return True
if privileged for the corresponding
column in protected_attribute_names
. All others are
unprivileged. Values are mapped to 1 (privileged) and 0
(unprivileged) if they are not already numerical.
您还可以查看示例 ,通过更改 gender
属性(例如,将 0 和 1 替换为 'female' 和 'male' 来查看实际效果就在传递给 StandardDataset
) 之前。
如果特权 class 已经编码为 1 而非特权为 0,这似乎是不必要的。但如果不是这种情况,设置这样的要求将意味着用户需要操作原始数据集,这不可取。
我正在使用 AI Fairness 360 包获取数据集的公平性指标。我已经将数据转换为 StandardDataset
实例。如果我理解正确,这会将受保护属性的所有值更改为 1 或 0:1 表示“属于此属性的特权组”,0 表示“属于此属性的非特权组”。
计算公平性指标时,我需要创建一个 BinaryLabelDatasetMetric
实例,我需要为其指定我认为哪些受保护属性的组合是我的 privileged/unprivileged 组。但是为什么我需要提供 privileged/unprivileged 的属性值呢?转换为 StandardDataset
后,所有特权值均为 1,非特权值为 0。我是否遗漏了什么?因为如果不是,只需将其编码为 1 就容易得多。
总而言之,我的问题是:StandardDataset
中受保护属性的值可以是 1 或 0 以外的任何值吗?如果是,在什么情况下? (如果不是,似乎 API 可以简化很多,只需要受保护属性的名称而不是值。)
can the values for protected attributes in a StandardDataset ever be anything other than 1 or 0?
是的。它们也可以是原始数据集中的其他值,但是一旦被 StandardDataset
转换,它们将被转换为 0 和 1。来自 source:
privileged_classes (list(list or function)): Each element is a list of values which are considered privileged or a boolean function which return
True
if privileged for the corresponding column inprotected_attribute_names
. All others are unprivileged. Values are mapped to 1 (privileged) and 0 (unprivileged) if they are not already numerical.
您还可以查看示例 gender
属性(例如,将 0 和 1 替换为 'female' 和 'male' 来查看实际效果就在传递给 StandardDataset
) 之前。
如果特权 class 已经编码为 1 而非特权为 0,这似乎是不必要的。但如果不是这种情况,设置这样的要求将意味着用户需要操作原始数据集,这不可取。