lale.lib.aif360.adversarial_debiasing module¶
- class lale.lib.aif360.adversarial_debiasing.AdversarialDebiasing(*, favorable_labels, protected_attributes, unfavorable_labels=None, redact=True, preparation=None, scope_name='adversarial_debiasing', sess=None, seed=None, adversary_loss_weight=0.1, num_epochs=50, batch_size=128, classifier_num_hidden_units=200, debias=True, verbose=0)¶
Bases:
PlannedIndividualOp
AdversarialDebiasing in-estimator fairness mitigator. Learns a classifier to maximize prediction accuracy and simultaneously reduce an adversary’s ability to determine the protected attribute from the predictions (Zhang et al. 2018). This approach leads to a fair classifier as the predictions cannot carry any group discrimination information that the adversary can exploit. Implemented based on TensorFlow.
This documentation is auto-generated from JSON schemas.
- Parameters
favorable_labels (array, >=1 items, not for optimizer) –
Label values which are considered favorable (i.e. “positive”).
items : union type
float
Numerical value.
or string
Literal string value.
or boolean
Boolean value.
or array, >=2 items, <=2 items of items : float
Numeric range [a,b] from a to b inclusive.
protected_attributes (array, >=1 items, not for optimizer) –
Features for which fairness is desired.
items : dict
feature : union type
Column name or column index.
string
or integer
reference_group : array, >=1 items
Values or ranges that indicate being a member of the privileged group.
items : union type
string
Literal value.
or float
Numerical value.
or array, >=2 items, <=2 items of items : float
Numeric range [a,b] from a to b inclusive.
monitored_group : union type, default None
Values or ranges that indicate being a member of the unprivileged group.
None
If monitored_group is not explicitly specified, consider any values not captured by reference_group as monitored.
or array, >=1 items
items : union type
string
Literal value.
or float
Numerical value.
or array, >=2 items, <=2 items of items : float
Numeric range [a,b] from a to b inclusive.
unfavorable_labels (union type, not for optimizer, default None) –
Label values which are considered unfavorable (i.e. “negative”).
None
If unfavorable_labels is not explicitly specified, consider any labels not captured by favorable_labels as unfavorable.
or array, >=1 items
items : union type
float
Numerical value.
or string
Literal string value.
or boolean
Boolean value.
or array, >=2 items, <=2 items of items : float
Numeric range [a,b] from a to b inclusive.
redact (boolean, not for optimizer, default True) – Whether to redact protected attributes before data preparation (recommended) or not.
preparation (union type, not for optimizer, default None) –
Transformer, which may be an individual operator or a sub-pipeline.
operator
or None
lale.lib.lale.NoOp
scope_name (string, not for optimizer, default 'adversarial_debiasing') – Scope name for the tenforflow variables. A unique alpha-numeric suffix is added to this value.
sess (union type, not for optimizer, default None) –
TensorFlow session.
Any
User-provided session object.
or None
Create a session for the user.
seed (union type, not for optimizer, default None) –
Seed to make predict repeatable.
integer
or None
adversary_loss_weight (float, >=0.03125 for optimizer, <=32768 for optimizer, loguniform distribution, default 0.1) – Hyperparameter that chooses the strength of the adversarial loss.
num_epochs (integer, >=1, >=5 for optimizer, <=500 for optimizer, loguniform distribution, default 50) – Number of training epochs.
batch_size (integer, >=1, >=4 for optimizer, <=512 for optimizer, loguniform distribution, default 128) – Batch size.
classifier_num_hidden_units (integer, >=1, >=16 for optimizer, <=1024 for optimizer, loguniform distribution, default 200) – Number of hidden units in the classifier model.
debias (boolean, not for optimizer, default True) – Learn a classifier with or without debiasing.
verbose (integer, not for optimizer, default 0) – If zero, then no output.
- fit(X, y=None, **fit_params)¶
Train the operator.
Note: The fit method is not available until this operator is trainable.
Once this method is available, it will have the following signature:
- Parameters
X (array) –
Features; the outer array is over samples.
items : array
items : union type
float
or string
y (union type) –
Target class labels; the array is over samples.
array of items : float
or array of items : string
- predict(X, **predict_params)¶
Make predictions.
Note: The predict method is not available until this operator is trained.
Once this method is available, it will have the following signature:
- Parameters
X (array) –
Features; the outer array is over samples.
items : array
items : union type
float
or string
- Returns
result – Predicted class label per sample.
array of items : float
or array of items : string
- Return type
union type
- predict_proba(X)¶
Probability estimates for all classes.
Note: The predict_proba method is not available until this operator is trained.
Once this method is available, it will have the following signature:
- Parameters
X (array) –
Features; the outer array is over samples.
items : array
items : union type
float
or string
- Returns
result – The class probabilities of the input samples
array of items : Any
or array of items : array of items : Any
- Return type
union type