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.