【问题标题】:Why do I need to provide (un)privileged attribute values for metrics?为什么我需要为指标提供(非)特权属性值?
【发布时间】:2021-03-27 08:21:46
【问题描述】:

我正在使用 AI Fairness 360 软件包来获取数据集的公平性指标。我已经将数据转换为StandardDataset 实例。如果我理解正确,这会将受保护属性的所有值更改为 1 或 0:1 表示“属于该属性的特权组”,0 表示“属于该属性的非特权组”。

在计算公平性指标时,我需要创建一个 BinaryLabelDatasetMetric 实例,我需要为其指定哪些受保护属性的组合我认为是我的特权/非特权组。但是为什么我需要提供特权/非特权的属性值呢?转换为StandardDataset 后,所有特权值为 1,非特权值为 0。我错过了什么吗?因为如果不是,那么像往常一样将其编码为 1 会容易得多。

总而言之,我的问题是:StandardDataset 中受保护属性的值可以是 1 或 0 以外的任何值吗?如果是,在什么情况下? (如果不是,API 似乎可以简化很多,只需要受保护属性的名称而不是值。)

【问题讨论】:

    标签: python aif360


    【解决方案1】:

    StandardDataset 中受保护属性的值可以是 除了 1 或 0 以外的任何值?

    是的。它们也可以是原始数据集中的其他值,但是一旦被StandardDataset 转换,它们将被转换为 0 和 1。来自source

    privileged_classes(list(list or function)):每个元素都是 被认为是特权或布尔值的列表 如果具有相应权限,则返回 True 的函数 protected_attribute_names 中的列。其他都是 无特权的。值映射到 1(特权)和 0 (非特权)如果它们还不是数字。

    您还可以查看示例here,通过更改gender 属性(例如,在传递给StandardDataset 之前将0 和1 替换为“女性”和“男性”)来查看实际情况。

    如果特权类已经被编码为 1 而非特权类被编码为 0,这似乎是不必要的。但如果不是这种情况,设置这样的要求将意味着用户需要操作原始数据集,这是不可取的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-07
      • 2016-03-02
      • 2014-10-25
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      相关资源
      最近更新 更多