赞
踩
pip install aif360
pip install aif360[LFR,OptimPreproc]
pip install aif360[all]
- # 导入所有需要的包
- 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 Reweighing
-
- from IPython.display import Markdown, display
pip install aif360[LawSchoolGPA]
pip install ipython
- 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], shuffle=True)
-
- privileged_groups = [{'age': 1}]
- unprivileged_groups = [{'age': 0}] # 其中“1”(大于或等于 25)和“0”(小于 25)分别是特权组和非特权组的值
- # 创建BinaryLabelDatasetMetric对象,传入原始训练数据集dataset_orig_train,以及privileged_groups和unprivileged_groups的定义
- metric_orig_train = BinaryLabelDatasetMetric(dataset_orig_train,
- unprivileged_groups=unprivileged_groups,
- privileged_groups=privileged_groups)
- display(Markdown("#### Original training dataset"))
- print("Difference in mean outcomes between unprivileged and privileged groups = %f" % metric_orig_train.mean_difference())
- RW = Reweighing(unprivileged_groups=unprivileged_groups,
- privileged_groups=privileged_groups) # 创建Reweighing对象RW
- dataset_transf_train = RW.fit_transform(dataset_orig_train) # 计算权重,并生成一个新的训练数据集
- metric_transf_train = BinaryLabelDatasetMetric(dataset_transf_train,
- unprivileged_groups=unprivileged_groups,
- privileged_groups=privileged_groups)
- display(Markdown("#### Transformed training dataset"))
- print("Difference in mean outcomes between unprivileged and privileged groups = %f" % metric_transf_train.mean_difference())
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。