holisticai.bias.mitigation.MetaFairClassifier#

class holisticai.bias.mitigation.MetaFairClassifier(*args, **kargs)[source]#

The meta algorithm [1] takes the fairness metric as part of the input and returns a classifier optimized w.r.t. that fairness metric. The algorithm support only binary protected groups -> group_a = 1 - group_b

Parameters

taufloat

Fairness penalty parameter (0,1). Higher parameter increate the threshold for a valid estimator.

constraintstr

The type of fairness metric to be used, currently supported: - StatisticalRate: Statistical rate/disparate impact - FalseDiscovery: False discovery rate ratio

seedint

Random seed.

verboseint

If >0, will show progress percentage.

Examples

>>> from holisticai.bias.mitigation.inprocessing import MetaFairClassifier
>>> mitigator = MetaFairClassifier(**params)
>>> mitigator.fit(train_data, y, group_a, group_b)
>>> test_data_transformed = mitigator.predict(test_data)

References

fit(X: ndarray, y: ndarray, group_a: ndarray, group_b: ndarray)[source]#

Fit the model

Description

Learn a fair classifier.

Parameters

Xnumpy array

input matrix

ynumpy array

target vector

group_anumpy array

binary mask vector

group_bnumpy array

binary mask vector

Returns

self

predict(X: ndarray)[source]#

Prediction

Description

Predict output for the given samples.

Parameters

Xpandas.DataFrame or numpy array

Test samples.

Returns

numpy.ndarray

Predicted output per sample.

predict_proba(X: ndarray)[source]#

Probability Prediction

Description

Probability estimate for the given samples.

Parameters

Xpandas.DataFrame or numpy array

Test samples.

Returns

numpy.ndarray

probability output per sample.