deon在你的数据科学项目中添加了一个道德检查表。

deon的Python项目详细描述


驱动程序代码状态/道德检查表pypi

< Buff行情>

在项目主页上阅读有关deon的更多信息


数据科学家的伦理检查表

deon是一个命令行工具,允许您轻松地将道德检查表添加到数据科学项目中。我们支持在许多常见格式中创建新的独立清单文件或将清单附加到现有分析中


δ_ν•(déon)[n.](古希腊语)<;small>;维基<;/small>;

< Buff行情>

义务;约束性的、必要的、正确的、适当的。


关于数据科学、机器学习和人工智能中的伦理问题的讨论变得越来越重要。Deon的目标是推动对话向前发展,并为那些对数据科学的发展有影响力的开发者提供具体的、可操作的提醒。

背景和透视图

我们对这个包有一个特别的看法,我们将用它来决定贡献、问题、减贫战略以及其他维护和支持活动。

首先也是最重要的是,我们的目标不是成为伦理问题值得包括在内的仲裁员。我们有一个更改默认检查表的流程,但是我们相信许多特定于域的问题不包括在内,开发自定义检查表将使团队受益。不是每个检查表项目都是相关的。我们鼓励团队根据项目的需要删除项目、部分或将项目标记为n/a

其次,我们从一组建议的项目中建立了我们的初始列表,这些项目位于我们引用的多个检查列表中。这份清单的灵感来自于Mike Loukides、Hilary Mason和DJ Patil撰写的一篇文章,该文章由O'Reilly出版:"of-oaths and checklists"。我们非常感谢进行这项工作的思考,我们期待着与正在进行的有关数据科学道德清单的讨论进行深思熟虑的接触。

第三,我们相信例子的力量,使数据伦理原则对人类经验产生影响。此存储库包含与默认检查表中的每个项目连接的实际示例列表。我们鼓励您提供相关的用例,您认为这些用例可以通过它们的示例使社区受益。此外,如果您有一个主题、想法或评论不适合文档,请将其添加到wiki页面为了这个项目!

第四,不是数据科学家一个人决定什么是道德行为。这一直是属于民间社会的组织的责任。该清单旨在引发围绕数据科学家具有特殊责任和视角的问题的对话。这段对话应该是一个更大的组织承诺的一部分,即做正确的事情。

第五,我们认为清单的主要好处是确保我们不会忽视重要的工作。有时,迫在眉睫的最后期限和同时处理多项任务的要求会让我们很难做出努力来考虑全局。这个一揽子计划旨在帮助确保这些讨论的进行,即使是在快速变化的环境中。道德操守是很难的,我们期望从这个清单中产生的一些对话也可能是很难的。

第六,我们在抽象的层次上工作,不能具体地推荐一个特定的操作(例如,"从模型中删除变量x")。清单上的几乎所有项目都是为了引起认真对待道德责任的诚信行为者之间的讨论。正因为如此,大部分的项目被框成提示来讨论或考虑。团队将希望记录这些讨论和决策,以供后代参考。

第七,我们不能详尽地定义清单中出现的每一个术语。其中有些术语可以解释,或者在不同的上下文中有不同的含义。我们建议用户在相关情况下创建自己的词汇表以供参考。

第八,我们希望避免任何严格属于统计最佳做法范畴的项目。相反,我们希望强调在最佳实践之外需要特别注意的领域。

第九,我们希望所有的检查表项目尽可能简单(但不要简单),并且可以操作。

使用此工具

先决条件

  • python>;3.6:您的项目不必是python 3,但您需要python3来执行此工具。
  • (特定于Linux):使用--clipboard选项需要xclip包,该包可在大多数发行版上轻松安装(例如,sudo apt get install xclip)。

安装

$ pip install deon

简单用法

我们建议在您的数据科学项目中添加一个清单作为第一步。创建项目文件夹后,您可以运行:

$ deon -o ETHICS.md

这将创建一个名为ethics.md的标记文件,您可以直接将其添加到项目中。

对于简单的一次性分析,可以使用-o标记将检查表附加到jupyter笔记本或rmarkdown文件中,以指示输出文件。deon将在该文件已存在时自动追加。

$ jupyter notebook my-analysis.ipynb

...

$ deon -o my-analysis.ipynb  # append cells to existing output file

该清单可供个人或团队使用,以确保审查其工作的道德影响是每个项目的一部分。清单是一个起点,它应该引发更深入、更深入的讨论,而不是取代那些讨论。

支持的文件类型

以下是当前支持的文件类型。如果有充分理由广泛使用新文件类型,我们将接受具有新文件类型的拉取请求。

  • .txt:ascii
  • .html:html
  • .ipynb:jupyter
  • .md:降价
  • .rmd:rmarkdown
  • .rst:rst

命令行选项

Usage: deon [OPTIONS]

Options:
  -l, --checklist PATH  Override default checklist file with a path to a custom
                        checklist.yml file.
  -f, --format TEXT     Output format. Default is "markdown". Can be one of
                        [ascii, html, jupyter, markdown, rmarkdown, rst].
                        Ignored and file extension used if --output is passed.
  -o, --output PATH     Output file path. Extension can be one of [.txt, .html,
                        .ipynb, .md, .rmd, .rst] The checklist is appended if
                        the file exists.
  -c, --clipboard       Whether or not to copy the output to the clipboard.
  -w, --overwrite       Overwrite output file if it exists.
                        Default is False , which will append
                        to existing file.
  --help                Show this message and exit.

默认检查表


数据科学伦理检查表

a.数据收集

  • []A.1知情同意:如果有人类受试者,他们是否给予了知情同意,其中受试者肯定地选择加入,并有明确的理解他们同意使用的数据的安定性?
  • []A.2收集偏差:我们是否考虑了在数据收集和调查设计过程中可能引入的偏差来源,并采取了缓解这些偏差的措施?
  • []A.3限制个人识别信息暴露:我们是否考虑了减少个人识别信息(PII)暴露的方法,例如通过匿名化或不收集与分析无关的信息?

b.数据存储

  • []B.1数据安全:我们是否有保护和保护数据的计划(例如,静止和传输中的加密、对内部用户和第三方的访问控制、访问日志和最新软件)?
  • []B.2被遗忘的权利:我们是否有一种机制,通过这种机制,个人可以要求删除其个人信息?
  • []B.3数据保留计划:是否有计划或计划在不再需要数据后删除它?

c.分析

  • []C.1缺少视角:我们是否通过与相关利益相关者的接触(例如,检查假设并与受影响社区和主题专家讨论影响)来解决分析中的盲点?
  • []C.2数据集偏差:我们是否检查了数据中可能存在的偏差来源,并采取措施缓解或解决这些偏差(例如,刻板印象的延续、确认偏差、不平衡类或遗漏的混淆变量)?
  • []C.3诚实表示:我们的可视化、摘要统计和报告是否设计为诚实表示底层数据?
  • []C.4分析中的隐私:我们是否确保不使用或显示带有PII的数据,除非分析需要?
  • []C.5可审核性:如果我们在未来发现问题,生成分析的过程是否有充分的记录并可重复?

d.建模

  • []D.1代理歧视:我们是否已确保模型不依赖变量或代理来处理不公平歧视的变量?
  • []D.2组间公平性:我们是否测试了模型结果,以确定不同受影响组的公平性(例如,测试了不同的错误率)?
  • []D.3指标选择:我们是否考虑了优化已定义指标的效果并考虑了其他指标?
  • []D.4可解释性:我们能否用可理解的术语解释模型在需要理由的情况下做出的决定?
  • []D.5沟通偏差:我们是否以可被普遍理解的方式向相关利益相关者传达了模型的缺点、局限性和偏差?

e.部署

  • []E.1补救措施:如果结果对用户造成伤害,我们是否与我们的组织讨论了应对计划(例如,数据科学团队如何评估这些案例并更新分析和模型以防止未来的伤害)?
  • []E.2回滚:是否有方法在生产中关闭或回滚模型(如果需要)?
  • []E.3概念漂移:我们是否测试和监控概念漂移,以确保模型在一段时间内保持公平?
  • []E.4非预期使用:我们是否已采取措施来识别和防止模型的非预期使用和滥用,并且我们是否有计划在模型部署后对其进行监控?

数据科学伦理检查表由deon生成


自定义检查表

这并不是唯一的道德检查表,相反,我们试图捕获合理的defau这是足够普遍的,可以广泛使用的。对于您自己特别关心的项目,我们推荐您自己的checklist.yml文件,该文件由您的团队维护,并通过-l标志传递给此工具。

自定义检查表必须遵循与checklist.yml相同的模式。必须有一个顶级的标题是一个字符串,而部分是一个列表。列表中的每个节都必须有一个标题,一个节的id,然后是一个行的列表。每行必须有一个行id,一个行摘要是一个1-3字的速记,一个字符串是内容。格式如下:

title: TITLE
sections: 
  - title: SECTION TITLE
    section_id: SECTION NUMBER
    lines:
        - line_id: LINE NUMBER
          line_summary: LINE SUMMARY
          line: LINE CONTENT

更改检查表

如需了解我们的视角,请参见框架。考虑到这一点,我们将考虑对符合该观点的默认检查表进行更改,并遵循此过程。

我们的目标是将清单项目作为数据科学工作回顾或计划的一部分来执行。请避免建议过于模糊(如"无害")或过于具体(如"从数据中删除社会保险号码")的项目。

注意:这个过程是一个实验,可能会根据工作的好坏而有所改变。我们的目标是避免问题线程中的火焰战,同时仍然制作一个工具,使向项目添加道德检查表变得容易。

若要请求更改,请提交标题为"创建、更新、删除"的问题。对于请求更改清单的问题,有四项要求:

  • 更改的理由
  • 至少有10位社区人士对此问题表示赞同
  • 一个已发表的例子(学术或新闻文章),说明忽略原则已导致具体损害(讨论潜在或假设损害的文章将被视为不够)
  • 对已经存在的相关项目的考虑,以及为什么这种变化与现有的不同

添加项目的请求应更改:

讨论和评论

除此文档外,还启用了github存储库的wiki页面。这是一个分享链接和讨论如何在实践中使用checklsit的好地方。

如果你有一个主题、想法或评论不适合文档,请将其添加到wiki中!

参考资料、阅读等

对数据伦理的深入讨论对该行业非常重要。此工具的目标是使在技术项目中更容易实施道德审查。如果你想思考数据伦理,有很多很棒的资源,我们鼓励你这么做!

引用清单

我们很高兴看到这么多关于数据伦理的文章出现!下面的简短列表包括直接介绍清单内容的文章,以及一些案例研究和关于全局的发人深省的文章。

哪里出了问题

为了使清单中包含的想法更加具体,我们汇编了一些出错的例子。他们将这些问题与检查表问题配对,以帮助说明过程中的道德讨论可能有助于提供课程更正。

相关工具

还有其他一些小组致力于数据伦理,并思考工具在这一领域的帮助。到目前为止,我们已经看到了一些:


deon由团队创建并维护,地址为driventa。我们的使命是将数据科学的力量带给社会影响组织。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在下面的多线程程序中出错   java获取com。jcraft。jsch。JSCHEException:通过TeamCity构建时身份验证失败   java在Spring+Hibernate中设置H2数据库而不使用XML文件会产生NullPointerException   java无法运行程序,权限被拒绝   设计方法:过程还是有大量数据的Java?   java sbt不支持的专业。在Jdk 1.7中执行时出现的小版本52.0错误   java随机(?)ElementNotVisibleException   java如何确定输入到文本字段中的时间是否在预先设定的两个打开和关闭时间范围内?   java Map reduce驱动程序代码不工作   Android java客户端突然停止   java J2ssh客户端经常断开连接   java动态标量子查询   java试图通过使用嵌套循环获取非重复数字。。(二维阵列)   使用java通知用户来自socket的新请求   java我们应该为DAO使用spring单例吗