Fairlearn敏感特征设置疑问:切换保护群体是否需反转特征列?
Fairlearn切换受保护群体的处理方法
你当前使用的Fairlearn公平性指标计算代码如下:
eor = fairlearn.metrics.equalized_odds_ratio(y_true, y_pred, sensitive_features=sensitive_feature) dpd = fairlearn.metrics.demographic_parity_difference(y_true, y_pred, sensitive_features=sensitive_feature) di = fairlearn.metrics.demographic_parity_ratio(y_true, y_pred, sensitive_features=sensitive_feature)
针对你的问题:需要反转sensitive_feature列后再传入函数。
原因很直接:Fairlearn的这类公平性指标默认把敏感特征里数值更小的类别当成受保护群体——在你当前的二值场景里,就是0对应的老年群体。如果要把青年(原1对应的群体)设为受保护群体,必须把sensitive_feature的0和1互换,让青年对应新的0,这样Fairlearn才会以它作为受保护群体计算指标。
举个简单例子:
原敏感特征列(老年=0,青年=1):
0, 1, 0, 1, 1
反转后(青年=0,老年=1):
1, 0, 1, 0, 0
把反转后的列传入函数,就能得到以青年为受保护群体的公平性指标结果。
内容的提问来源于stack exchange,提问作者beezus333
相关产品推荐
相关产品推荐

