以下是微软 Fairlearn 库的详细使用方法及实例解析,帮助评估和改善机器学习模型的公平性,涵盖数据预处理、公平性指标计算及缓解策略:
1. Fairlearn 的核心功能
- 公平性评估:量化模型在不同群体(如性别、种族)中的性能差异。
- 缓解策略:提供算法调整模型,减少偏差。
- 可视化工具:对比不同群体间的预测结果分布。
2. 安装与基础配置
pip install fairlearn
3. 基础使用示例:贷款审批模型公平性分析
步骤1:加载数据与训练模型
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from fairlearn.metrics import MetricFrame, selection_rate, false_negative_rate
from fairlearn.reductions import GridSearch, DemographicParity
# 加载示例数据集(假设数据包含性别、收入、信用分、审批结果)
data = pd.read_csv("loan_data.csv")
X = data[["income", "credit_score"]]
y = data["loan_approved"]
sensitive_feature = data["gender"] # 敏感属性:性别('Male', 'Female')
# 划分训练集和测试集
X_train, X_test, y_train, y_test, sf_train, sf_test = train_test_split(
X, y, sensitive_feature, test_size=0.2, random_state=42
)
# 训练初始模型
model = RandomForestClassifier()
model.fit(X_train, y_train)