Skip to main content

audit-AI 检测机器学习模型或其他评估输出中的人口统计学差异

项目描述

Python 包

审计-AI

广义机器学习应用的开源偏差测试

audit-AI是一个 Python 库,它构建在上面pandassklearn实现了公平感知机器学习算法。audit-AIpymetrics的数据科学团队开发

广义机器学习应用的偏差测试

audit-AI是一种工具,用于衡量和减轻训练数据中歧视性模式的影响,以及为社会敏感决策过程而训练的机器学习算法所做的预测。

这项研究的总体目标是想出一种合理的方式来思考如何使机器学习算法更加公平。虽然识别训练数据集中的潜在偏差以及因此训练的机器学习算法不足以解决歧视问题,但在越来越多的决策被人工智能自动化的世界中,我们理解和识别程度的能力算法公平或有偏见是朝着正确方向迈出的一步。

合规性和检查实际和统计偏差

根据员工选择程序统一指南(UGESP;EEOC 等人,1978 年),所有评估工具都应符合所有受保护群体的公平待遇标准。Audit-ai 将此扩展到机器学习方法。假设我们建立了一个模型,可以对人进行一些预测。这个模型理论上可以是任何东西——信用评分的预测、监狱累犯的可能性、住房贷款的成本等。Audit-ai 从已知人群中获取数据(例如,来自多个性别和种族的人的信用信息),并通过相关模型运行它们。将通过率最高的人口群体的比例通过率与每个人口统计类别(性别和种族)的通过率最低的群体进行比较。这个比例被称为偏差比。

Audit-ai 根据统计显着性标准(在统计上不同的误差范围内)或实际显着性(差异是否大到足以在实际水平上产生影响)确定组是否不同。统计和实际意义的确切阈值取决于领域和用例。在招聘空间内,EEOC 通常使用 p < .05 的统计显着性来确定偏差,并使用低于 4/5 规则的偏差率来证明实际意义。

4/5 规则有效地表明,最低通过率必须在最高通过率的 4/5 以内。考虑一个有 4,000 名用户的示例,以下各组各有 1,000 名:亚裔、黑人、西班牙裔/拉丁裔和白人,他们通过的频率分别为 250、270、240 和 260 名用户。通过率最高和最低的群体分别是黑人 (27%) 和西班牙裔/拉丁裔 (24%)。因此,偏置比为 24/27 或 0.889。由于该比率大于 EEOC 强制执行的法律要求 0.80(4/5),因此该模型将通过实际意义的检查。同样,卡方检验(计数数据的常见统计检验)将报告这些组高于 p = .05 阈值,因此通过统计显着性检查。

Audit-ai 还提供工具来检查不同时间或不同地区之间的差异,使用 Cochran-Mantel-Hanzel 测试,这是监管界常见的测试。据我们所知,这是第一个以开源 python 格式实施的措施。

特征

以下是该库实现的一些偏差测试和算法审计技术。

分类任务

  • 4/5th、fisher、z 检验、贝叶斯因子、卡方
  • sim_beta_ratio,classifier_posterior_probabilities

回归任务

  • 方差分析
  • 4/5th、fisher、z 检验、贝叶斯因子、卡方
  • 不同阈值的分组比例

安装

源代码目前托管在 GitHub 上:https ://github.com/pymetrics/audit-ai

您可以使用pip.

# pip
pip install audit-AI

如果使用 pip 安装,则需要使用 pip 或 conda 安装 scikit-learn、numpy 和 pandas。版本要求:

  • 麻木的
  • scipy
  • 熊猫

对于可视化:

  • matplotlib
  • 海运

如何使用这个包:

在此处查看我们的实施文件:https ://github.com/pymetrics/audit-ai/blob/master/examples/implementation_suggestions.md

from auditai.misc import bias_test_check

X = df.loc[:,features]
y_pred = clf.predict_proba(X)

# test for bias
bias_test_check(labels=df['gender'], results=y_pred, category='Gender')

>>> *Gender passes 4/5 test, Fisher p-value, Chi-Squared p-value, z-test p-value and Bayes Factor at 50.00*

要获得不同阈值下的不同测试图:

from auditai.viz import plot_threshold_tests

X = df.loc[:,features]
y_pred = clf.predict_proba(X)

# test for bias
plot_threshold_tests(labels=df['gender'], results=y_pred, category='Gender')
审计样本-AI Plot

示例数据集

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

audit-AI-0.1.1.tar.gz (26.8 kB 查看哈希

已上传 source

内置分布

audit_AI-0.1.1-py2.py3-none-any.whl (31.2 kB 查看哈希

已上传 py2 py3