理解和研究算法偏差的工具包

EthicML的Python项目详细描述


埃塞俄比亚文

EthICML的存在是为了解决我们在现成的公平性比较包中发现的问题。

这些其他的软件包是有用的,但是考虑到我们主要做研究, 我们做的很多工作都放不进漂亮的盒子里。 例如,在训练分类器之前,我们可能希望对数据使用“公平”的预处理方法。 我们可能仍在试验,只希望执行框架的一部分, 或者我们可以做超参数优化。 当其他框架可以修改来完成这些任务时, 最后,你会发现黑客们的方法不适合将来构建。 因为这个, 我们在沙地上画了一条线,和我们使用过的其他一些框架,并建立了自己的框架。

为什么不使用xxx?

还有越来越多的其他选择, ibm的fair-360、aequitas、ethicalml/xai、fairity comparison等。 他们都很擅长自己的工作,只是不适合我们。 但是我们会受到他们的影响。

设计原则

三重态

考虑到我们考虑的是公平性,工具箱的基础是三元组{x,s,y}

  • X-功能
  • S-敏感标签
  • Y-类标签

所有方法都必须假定s和y是多类的。

我们使用命名元组来包含三元组

triplet=DataTuple(x=dataframe,s=dataframe,y=dataframe)

数据帧可能效率有点低, 但考虑到在我们所做的条件下拼接的数量,这感觉是值得的。

方法分离

我们有目的地将前、中、后算法分离。这是因为它们有不同的返回类型。

pre_algorithm.run(train:DataTuple,test:DataTuple)# -> Tuple[pandas.DataFrame, pandas.DataFrame]in_algorithm.run(train:DataTuple,test:DataTuple)# -> pandas.DataFramepost_algorithm.run(preds:DataFrame,test:DataTuple)# -> pandas.DataFrame

其中preds是列名为“preds”的单列数据帧。

一般经验法则

  • 可变数据结构不好。
  • 至少,函数应该被输入。
  • 可读性>;效率
  • 不要只是关掉警告就避开它们。

未来计划

希望ethicml能够成为一种超级简单的方法来看待不同数据集中的偏见 比较不同的模型。

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

推荐PyPI第三方库


热门话题
java未能实例化[org.springframework.web.servlet.HandlerMapping]:工厂方法“resourceHandlerMapping”引发异常;没有ServletContext集   date Java 8–使用时区从LocalDateTime创建即时   带有BigInteger的Java hmacSHA256与C不同#   java线在未最大化时绘制在错误的位置   java错误:数据源拒绝建立连接,来自服务器的消息:“连接太多”   java Beanio:如何根据另一个字段值验证字段?   java SonarQube无法连接到>本地主机/0:0:0:0:0:0:0:1:9000   JavaLucene实现对相关性的自定义评分   排序java。lang.IllegalArgumentException:比较方法违反了它的通用合同java。base/java。util。蒂姆索特。合并崩溃   java处理来自另一个类的按钮按下   java未检测到短电源按钮按下   java需要在另一个具有RecyclerView的活动中使用复选框放置所选(多个)RecyclerView项行   java捆绑包的激活器无效