holisticai.bias.mitigation.AdversarialDebiasing#

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

Adversarial Debiasing

Adversarial debiasing [1]_ learns a classifier to maximize prediction accuracy and simultaneously reduce an adversary’s ability to determine the protected attribute from the predictions. This approach leads to a fair classifier as the predictions cannot carry any group discrimination information that the adversary can exploit.

Obs: Pytorch must be installed in order to use this techinique (pytorch = “>=1.12.1”).

Parameters

features_dim: int

Number of input feature X: (n_samples, features_dim)

keep_prob: float

Dropout parameter for classifier

hidden_size: int

Number of neurons on hidden layer

batch_size: int

Numer of examples used for each iteration

shuffle: bool

Shuffle data after each epoch

epochs: int

Number of epochs

initial_lr: float

Initial Learning Rate

use_debias: bool

If False Train a simple classifier

adversary_loss_weight: float

Adversarial Loss importance

verboseint

Log progress if value > 0.

print_intervalint

Each print_interval steps print information.

device: str

pytorch paramter (“cpu”, “cuda”)

seed: int

seed for random state

Examples

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

References

[1] B. H. Zhang, B. Lemoine, and M. Mitchell, “Mitigating Unwanted Biases with Adversarial Learning,” AAAI/ACM Conference on Artificial Intelligence, Ethics, and Society, 2018.

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

y_truenumpy array

Target vector

group_anumpy array

binary mask vector

group_bnumpy array

binary mask vector

Returns

the same object

predict(X)[source]#

Prediction

Description

Predict output for the given samples.

Parameters

Xnp.ndarray

input matrix

Returns

np.ndarray: Predicted output per sample.

predict_proba(X)[source]#

Prediction

Description

Predict matrix probability for the given samples.

Parameters

Xnp.ndarray

input matrix

Returns

np.ndarray: Predicted matrix probability per sample.

predict_score(X)[source]#

Prediction

Description

Predict probability for the given samples.

Parameters

Xnp.ndarray

input matrix

Returns

np.ndarray: Predicted probability per sample.