如何实现算法中的公平性

2023-10-26

机器学习的公平性问题近几年受到越来越多的关注,该领域出现了一些新的进展。机器学习训练在涉及到性别、种族等与人相关的敏感属性时,常常会由于统计性偏差、算法本身甚至是人为偏见而引入歧视性行为。由此,为消除差别影响,改进机器学习公平性,主要途径包括提高训练数据集质量、改进算法降低对敏感属性的依赖以及定义指标量化和衡量歧视程度。本文分析了算法歧视的致因,侧重于数据问题给出了公平性的定义,介绍了统计均等等度量指标。文章也指出,各种算法公平性定义指标法都有其优缺点,并无法就公平性达成共识。因此,算法公平性并不能直观看成一种数学或计算机科学问题。本文的目的是使广大读者切身理解根植于机器学习算法中的不公平性。为此,作者力图以易于理解的方式阐释概念,避免使用数学表达。希望每位读者都能从阅读本文受益。

“做好人容易,但做到公正不易”——维克多·雨果,法国文学家

“我们需要捍卫那些我们从未谋面、甚至永远不会谋面的人的利益。”——Jeffrey D. Sachs,美国经济学家

有监督机器学习算法在本质上是判别性的。这种判别性的根源,在于算法是根据嵌入在数据中的特征信息进行实例分类的。的确,现实中此类算法就是设计用于分类的。判别性同样体现在算法的命名上。有别于根据特定类别生成数据的“生成算法”,此类对数据分门别类的算法通常称为“判别算法”。使用有监督的机器学习时,这种“判别”(discrimination,也可表述为“歧视”、“区别对待”)有助于按不同分布将数据划分为不同类别,如下图所示。

对任一数据集应用任何一种判别算法,无论是支持向量机、普通线性回归等参数回归算法,还是随机森林、神经网络、Boosting 等无参数回归算法,输出结果本身在道德上并不存在任何问题。例如,可以使用上周的天气数据去预测明天的天气,这在道德上毫无问题。然而,一旦数据集涉及对人类相关信息的描述时,无论是直接的还是间接的,都可能无意中导致特定于群组从属关系的某种歧视性。

人们已经认识到,有监督学习算法是一把双刃剑。它可以迎合人们的利益,例如提供天气预报等信息服务,或是通过分析计算机网络,检测攻击和恶意软件进而起到防护作用。但从另一方面看,它在本质上也会成为在某一层面上实施歧视的武器。这并不是说算法的所做所为是邪恶的,它们仅仅学习了数据中的表示,但这些表示本身可能融入了历史偏见的某种具体呈现,或是某个人的好恶和倾向性。数据科学中常说的一句习语就是:“垃圾入,垃圾出”,意思是模型高度依赖于所提供的数据质量。在算法公平性的场景中,可类似地表述为:“输入有偏差,则输出有偏差”。

数据原教旨主义

数据原教旨主义(data fundamentalism)拥趸者甚众。他们认为,通过对数据的经验观察,可以反映出世界的客观真相。

“数据足量,其义自见。”——Chris Anderson,《Wired》前主编,也是一位数据原教旨主义者。

数据和数据集并非客观的,而是人类设计的产物。人们赋予数据以表达,从中推理,并以自身的解释去定义数据的内涵。隐藏在收集和分析阶段的偏见带来了很大的风险,它们对大数据等式的影响和数字本身是一样的。”——Kate Crawford,微软研究院社会媒体组首席研究员

原教旨主义者的假设从表面看似乎合情合理。但 Kate Crawford 在《哈佛商业评论》( Harvard Business Review ) 撰文给出了一个很好的反驳:

“波士顿市存在着坑洞的问题,每年需修补约两万个坑洞。为有效地配置资源,波士顿市政府发布了一款很好用的智能手机应用 StreetBump。该应用利用智能设备的加速度计和 GPS 数据,以非主动方式探测坑洞,然后立即上报市政府。虽然该应用的理念非常好,但存在一个明显的问题。美国低收入人群拥有智能手机的可能性较小,尤其是一些老年居民。此类人群的智能手机普及率可低至 16%。对于波士顿这样的城市而言,意味着智能手机数据集中缺少了一部分重要人群,通常是那些底层生活者。”——Kate Crawford

从本质上看,StreetBump 应用获取的数据主要来自相对富裕社区,来自相对贫困社区的数据则较少。这会导致人们的第一感觉是,相对富裕的社区存在更多的坑洞。但事实上,是因为来自于相对贫困社区的数据不足,社区居民不太可能具有智能手机去下载 SmartBump 应用。通常情况下,对结果产生影响最大的,正是数据集中缺失部分的数据。上面的例子很好地展示了一种基于收入的歧视。因此,在基于数据给出结论时,我们需要谨慎,因为数据中可能存在着“信号问题”。这种信号问题常被称为“采样偏差”。

另一个很好的例子是“替代制裁的罪犯矫正管理分析”算法(Correctional Offender Management Profiling for Alternative Sanctions),简称为 COMAS。COMAS 算法被美国许多州采用去预测累犯,即曾经犯过罪的人再次犯罪的可能性。但调查新闻机构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何实现算法中的公平性 的相关文章

  • 有没有一种简单的方法可以使用 Common Lisp 中的 Python 库?

    在编写 Common Lisp 代码时我真正怀念的一件事是访问 Python 库 包括标准库和第三方模块 CLPython 提供了 Python 功能的有限子集 这阻止了大多数库的使用 因此这对我来说并不是很有用 我希望能够从 Common
  • 从单独的键和值列表创建字典(dict)

    我想将这些结合起来 keys name age food values Monty 42 spam 放入单个字典中 name Monty age 42 food spam 我怎样才能做到这一点 像这样 keys a b c values 1
  • 如何忽略 OpenCV python 中的内部黑色轮廓?

    在上图中 我只需要以下轮廓 8 7 0 2 4 里面每隔一个轮廓都是黑色的空盒子 有没有办法使用 cv2 RETR TREE 自动提取此类轮廓 cv2 RETR EXTERNAL 将忽略我实际需要的 2 和 4 gt gt heirarch
  • 按时间合并 pandas 数据框和另一列

    我有两个熊猫数据框 我正在尝试将它们组合成一个数据框 我是这样设置它们的 a date 1 1 2015 00 00 1 1 2015 00 15 1 1 2015 00 30 num 1 2 3 b date 1 1 2015 01 15
  • Python 中的嵌套函数如何工作?

    def maker n def action x return x n return action f maker 2 print f print f 3 print f 4 g maker 3 print g 3 print f 3 st
  • 如何解决 pandas 读取大 csv 文件时的内存问题

    我有一个 100GB 的 csv 文件 其中有数百万行 我需要在 pandas 数据框中一次读取 10 000 行 并将其分块写入 SQL 服务器 我按照建议使用了 chunksize 以及 iteartorhttp pandas docs
  • gevent 无法在 OS X Capitan 上的 python 虚拟环境中安装

    我刚刚安装了 OS X Capitan 并尝试在 python2 7 x 虚拟环境中安装 gevent 这就是我得到的 看起来像是与 gcc 有关的东西 这是回溯 Building wheels for collected packages
  • 使用 pyinstaller 在所有系统上保留字体

    我使用 tkinter 制作了一个 GUI 我用 pyinstaller 创建了 onefile exe 但设置的字体 font freesans ttf 不适用于其他计算机 我想我需要添加字体 但在与我类似的情况下 我不明白 pygame
  • 使用 python 字符串格式插入制表符

    我正在尝试使用 format 形成一个字符串 但无法弄清楚这一点 lems scaena persona improbus for i in lems print format i t whatever 但拉环并没有像我想象的那样拉紧 实际
  • 平均日期数组计算

    我想得到以下日期的平均值 我考虑过将所有数据转换为秒 然后对它们进行平均 但可能有更好的方法来做到这一点 date 2016 02 23 09 36 26 2016 02 24 10 00 32 2016 02 24 11 28 22 20
  • 如何创建 tox.ini 变量

    有没有办法在 tox ini 中设置任意变量 一个示例是可以多种方式使用的项目名称 对于相当复杂的 tox ini 我发现自己复制并粘贴到了我只需要在顶部设置一个变量的地方 作为参考 tox ini 示例 tox envlist clean
  • 使用 Apache2 (mod_wsgi) 的 Django 出现问题,偶尔会无缘由地“无法从模块导入”

    我已经将我的 Django 网站放到了我的 Web 服务器上 并使用 apache2 和 mod wsgi 进行了设置 大部分时间一切都工作正常 但偶尔它只会给出错误 无法导入模块 通常是从我的模块导入 视图文件 但是 这不是该模块的问题
  • 下载gensim数据集时出现ValueError

    我想下载 gensim glove wiki gigaword 100 数据集 这是我的代码 import gensim downloader as api model api load glove wiki gigaword 100 但我
  • Scorer函数:make_scorer/score_func和的区别

    在 scikit 0 18 1 文档中 我发现接下来的内容有点令人困惑 似乎可以通过多种方式编写自己的评分函数 但有什么区别呢 网格搜索简历 http scikit learn org stable modules generated sk
  • 使用 argparse 的 Python 组之间的依赖关系

    我开始学习Python 现在我正在学习Python的巨大好处argparse Using argparse 我创建了两组参数 group list and group simulate 每个组都有自己的参数 用户只能在每个组中指定一个参数
  • Postgres - python 多个 SSL 连接

    我在使用 psycopg2 和 SSL 建立两个并发 Postgres 数据库连接 一个到主数据库 一个到从数据库 时遇到问题 两个连接分别工作 即 import psycopg2 dsnMaster dbname sslcert path
  • 使用 Python 移动特定文件类型

    我知道这对你们中的许多人来说会非常容易 我刚刚开始学习 Python 需要一些基本文件处理方面的帮助 我拍摄了很多屏幕截图 最终出现在我的桌面上 因为这是默认设置 我知道我可以更改屏幕截图设置以自动将其保存在其他位置 不过 我认为这个程序将
  • Django 中 DateTimeField 的过期逻辑

    我在服务模型中有一个 DateTimeField 定义如下 pub date models DateTimeField default timezone now blank True 我想在我的代码中创建一些过期逻辑 以便超过 2 个月的服
  • 模块 PIL 没有属性“重新采样”

    我之前运行过相同的代码 带有我需要的包 并且它有效 不确定现在发生了什么 这显示错误 AttributeError module PIL Image has no attribute Resampling 可能这是一个小问题 但我无法弄清楚
  • 检查字典是否有多个键

    如何检查字典 实际上是类似字典的对象 是否具有给定集合的所有内容keys 复数 到目前为止 我已经使用过 d a 1 b 2 c 3 keys a b def has keys d keys for key in keys if not k

随机推荐

  • wazuh日志审计--定制规则

    日志审计 定制规则 目录布局 规则集文件夹结构如下所示 在接收到agent传来的日志后 manager会根据 var ossec ruleset decoders里面的各种规则对日志进行处理 提取到了指定字段的值之后再根据 var osse
  • 物理这一块真不好搞,

    研究了一段PHYSX 发现真是寸步难行 英文文档也不是很详细 哎 没人带着的话 还是不搞为好 继续封装软引擎吧 没法干了 心里泼凉泼凉的 哎 咋弄呢 看来只能当个兴趣爱好了 或许用下游戏引擎 看看有没有集成好的
  • TensorFlow 深度学习笔记 Stochastic Optimization

    Stochastic Optimization 转载请注明作者 梦里风林 Github工程地址 https github com ahangchen GDLnotes 欢迎star 有问题可以到Issue区讨论 官方教程地址视频 字幕下载
  • adb移植到Android平台使用

    adb移植到Android平台使用 1 工具源码 所需源码 openssl git clone https github com openssl openssl git zlib 1 2 8 git clone https github c
  • JSOUP爬取4K高清壁纸

    jsoup jar包 1 11 2 链接 https pan baidu com s 1pe3 r5 YB pGEsosfRLbsA pwd 41w5 提取码 41w5 效果 代码 import org jsoup Jsoup import
  • Java.nio.file.NoSuchFileException] - 文件未找到异常处理及解决方法

    Java nio file NoSuchFileException 文件未找到异常处理及解决方法 在日常的Java开发中 我们经常会遇到各种异常情况 其中之一就是 Java nio file NoSuchFileException 即文件未
  • 求帮助安装mysql 出现红色感叹号

  • 【python】【django】cursor.fetchall()的结果是元组

    今天做测试 用django db 的connection来执行一个非常简单的查询语句 sql str select col 1 from table 1 where criteria 1 cursor connection cursor c
  • 混乱的代码是技术债吗

    翻译自 Uncle Bob 的 Blog A Mess is not a Technical Debt 主要是鲍勃大叔的观点 混乱的代码实现不是技术债 原文地址见超链接 The term Technical Debt was created
  • 成功解决安装tensorflow,安装进度1/4,爆红一大片且有很多File出现timed out

    之前安装几次 CPU tensorflow总是出现一大片红 自己发现其中一个原因是python版本和tensorflow不对应 tensorflow 2 0 0 得和python3 5 3 7对应 我之前的版本是3 8 5 会出现不兼容情况
  • 银行定期存款产品目标客户的确定——基于逻辑回归

    本篇文章将会介绍用Python分析银行定期存款产品目标客户的确定详细建模细节 业务框架分析以及模型的选择与评估分析参见上一篇文章 银行定期存款产品目标客户的确定 基于逻辑回归 建模前分析 1 导入各种模块并读取数据 2 数据预处理 维规约
  • STM32 keil中__IO得意思

    IO解释 STM32得库函数中 HAL和LL库都有 存在一个 IO得宏定义 define I volatile const lt defines read only permissions define O volatile lt defi
  • STM32配置时钟系统流程(固件库/外设标准库)

    前提 STM32F10x系列固件库 标准外设库 前言 固件库帮我们写好了 时钟系统 时钟树 的配置函数 该函数也不需要我们去调用 只要正确包含了STM32的启动文件 s文件 就行 s启动文件调用执行了时钟配置函数 先于main函数执行 s启
  • “钢铁侠”大战“机器人”!马斯克称「笼中格斗」将在 X 上直播,小扎应战:8 月 26 日如何?...

    由马斯克和扎克伯格领衔 随后引爆全网讨论的 约架 已过去快两个月 先是约定在拉斯维加斯来一场 笼中格斗 接着网友看热闹不嫌事大的做起了预告海报 最后由马斯克母亲出面叫停 当大家以为格斗一事要不了了之时 马斯克再次发声 要打 准备在 X 上直
  • 【Android】拾物App期末作业

    一 期末作业题目 校园失物 拾物APP 二 实施目的 通过本实训 使受训者可以深入理解Android相关技术 并将所学知识应用到实际的中等规模的程序设计中 同时 通过本实训 受训者可以拓展Android相关的知识 提升受训者的能力 三 实施
  • java中JDK JRE JVM的关系

    1 1 软件开发介绍 程序是为了模拟现实世界 解决显示问题而使用计算机语言编写的一系列有序的指令集合 软件 即一系列按照特定顺序组织的计算机数据和指令集合 有系统软件和应用软件之分 人机交互方式 图形化界面 GUI 命令行方式 CLI 常用
  • IO作业day5

    1 gt 使用两个线程完成两个文件的拷贝 主线程拷贝前一半内容 子线程拷贝后一半内容 并且主线程要阻塞回收子线程资源 2 gt 使用三个进程完成两个文件的拷贝 主线程拷贝前三分之一 子线程1拷贝中间三分之一 子线程2拷贝后三分之一 主线程要
  • 使用 Android 开发 MQTT 客户端

    MQTT 代表消息队列遥测传输 它是一种功能强大的消息传输协议 主要用于机器对机器 M2M 和物联网 IoT 通信上下文 MQTT 在这些情况下是首选 因为它易于实施 并且非常适合资源有限的设备 在本文中 我们将开发一个使用 MQTT 协议
  • c语言结构体简单试题,C语言6结构体练习题6

    第六章 结构体 1 下面对结构变量的叙述中错误的是 A 相同类型的结构变量间可以相互赋值 B 通过结构变量 可以任意引用它的成员 C 结构变量中某个成员与这个成员类型相同 的简单变量间可相互赋值 D 结构变量与简单变量间可以赋值 2 有枚举
  • 如何实现算法中的公平性

    机器学习的公平性问题近几年受到越来越多的关注 该领域出现了一些新的进展 机器学习训练在涉及到性别 种族等与人相关的敏感属性时 常常会由于统计性偏差 算法本身甚至是人为偏见而引入歧视性行为 由此 为消除差别影响 改进机器学习公平性 主要途径包