哪个网站建设公司,东莞网站建设做公司,wordpress 幻灯片代码在哪,wordpress中一个侧面导航实现异步1、AIF360简介
AI Fairness 360 工具包(AIF360)是一个开源软件工具包#xff0c;可以帮助检测和缓解整个AI应用程序生命周期中机器学习模型中的偏见。在整个机器学习的过程中#xff0c;偏见可能存在于初始训练数据、创建分类器的算法或分类器所做的预测中。AI Fairness 360…1、AIF360简介
AI Fairness 360 工具包(AIF360)是一个开源软件工具包可以帮助检测和缓解整个AI应用程序生命周期中机器学习模型中的偏见。在整个机器学习的过程中偏见可能存在于初始训练数据、创建分类器的算法或分类器所做的预测中。AI Fairness 360 工具包可以衡量和缓解机器学习过程中三个阶段的偏见。开源网站https://github.com/Trusted-AI/AIF360
2、安装AIF360
使用pip安装最新稳定的版本先使用这个 pip install aif360 【注】某些算法需要额外的依赖包安装额外的依赖包例如运行 pip install aif360[LFR,OptimPreproc] 或安装完整功能的AIF360 pip install aif360[all]
3、使用示例
从github上找到官方提供的有关教程。网站AIF360/examples/README.md at master ·可信AI/AIF360 ·GitHub
3.1、信用评分数据预处理去偏
本案例演示了在使用德国信用数据集的信用评分场景中的年龄偏差背景下使用一个公平性指标平均差和一个偏见缓解算法重新加权。具体工作检查初始训练数据中的偏见缓解偏见然后重新检查。网站Jupyter 笔记本查看器 (nbviewer.org)
3.2、新建项目
使用PyCharm建立一个新的项目。【注】在系统中使用pip下载的包在Pycharm中一定要选择系统解释器才能够引用。
3.3、编写导入语句
以下所有语句都在main.py中编写。与任何python程序一样第一步是导入必要的包。下面我们从包中导入几个组件。我们导入 GermanDataset用于检查偏见的指标以及与我们将用于减轻偏差的算法相关的类。 # 导入所有需要的包
import sys
sys.path.insert(1, ../) import numpy as np
np.random.seed(0)from aif360.datasets import GermanDataset
from aif360.metrics import BinaryLabelDatasetMetric
from aif360.algorithms.preprocessing import Reweighingfrom IPython.display import Markdown, display 编译报错没什么包加什么包添加包还是报错先不管它 pip install aif360[LawSchoolGPA] 安装IPython pip install ipython 再次编译报错需要下载数据集到指定位置。分别点击上述两个链接右键另存为到指定的位置。注意修改文件名字和后缀
3.4、设置偏差检测选项、加载数据集并在训练和测试之间拆分
加载初始数据集将受保护属性设置为 age。将原始数据集拆分为训练数据集和测试数据集。虽然在本教程中我们将仅使用训练数据集但正常的工作流也会使用测试数据集来评估机器学习模型开发期间的有效性准确性、公平性等。为 age 属性的特权群体(1)和非特权群体(0)设置两个变量。 dataset_orig GermanDataset(protected_attribute_names[age], # 将年龄指定为被保护属性privileged_classes[lambda x: x 25], # age 25 认为是特权features_to_drop[personal_status, sex] # 忽略与性别有关的属性
)dataset_orig_train, dataset_orig_test dataset_orig.split([0.7], shuffleTrue)privileged_groups [{age: 1}]
unprivileged_groups [{age: 0}] # 其中“1”大于或等于 25和“0”小于 25分别是特权组和非特权组的值
3.5、计算原始训练数据集上的公平性指标
使用平均差来度量数据集中的偏见。比较特权和非特权群体的有利结果百分比从后者中减去前者的百分比负值表示对非特权组不利的结果。使用BinaryLabelDatasetMetric类中的mean_difference方法实现。 # 创建BinaryLabelDatasetMetric对象,传入原始训练数据集dataset_orig_train,以及privileged_groups和unprivileged_groups的定义
metric_orig_train BinaryLabelDatasetMetric(dataset_orig_train, unprivileged_groupsunprivileged_groups,privileged_groupsprivileged_groups)
display(Markdown(#### Original training dataset))
print(Difference in mean outcomes between unprivileged and privileged groups %f % metric_orig_train.mean_difference()) 编译后显示差值为 -0.169905。
3.6、通过转换原始数据集来缓解偏差
尝试减轻训练数据集中的偏见被称为预处理去偏因为它发生在创建模型之前。AI Fairness 360 实现了多种预处理缓解算法选择重新加权算法通过改变样本权重的方式来减少数据集中不同群体之间的偏差该算法在包中的类中实现。此算法将转换数据集使其在特权组和非特权组的受保护属性的积极结果上具有更大的公平性。再调用拟合和转换方法来执行转换生成新转换的训练数据集dataset_transf_train。 RW Reweighing(unprivileged_groupsunprivileged_groups,privileged_groupsprivileged_groups) # 创建Reweighing对象RW
dataset_transf_train RW.fit_transform(dataset_orig_train) # 计算权重并生成一个新的训练数据集
3.7、在转换后的训练数据集上计算公平性指标
再次使用平均差来度量它的去偏效果。 metric_transf_train BinaryLabelDatasetMetric(dataset_transf_train, unprivileged_groupsunprivileged_groups,privileged_groupsprivileged_groups)
display(Markdown(#### Transformed training dataset))
print(Difference in mean outcomes between unprivileged and privileged groups %f % metric_transf_train.mean_difference()) 结果显示去偏效果非常明显平均结果的差异现在是0.0。