aif360.sklearn.inprocessing
.ExponentiatedGradientReduction¶
-
class
aif360.sklearn.inprocessing.
ExponentiatedGradientReduction
(prot_attr, estimator, constraints, eps=0.01, T=50, nu=None, eta_mul=2.0, drop_prot_attr=True)[source]¶ Exponentiated gradient reduction for fair classification.
Exponentiated gradient reduction is an in-processing technique that reduces fair classification to a sequence of cost-sensitive classification problems, returning a randomized classifier with the lowest empirical error subject to fair classification constraints [1].
References
[1] A. Agarwal, A. Beygelzimer, M. Dudik, J. Langford, and H. Wallach, “A Reductions Approach to Fair Classification,” International Conference on Machine Learning, 2018. Parameters: - prot_attr – String or array-like column indices or column names of protected attributes.
- estimator – An estimator implementing methods
fit(X, y, sample_weight)
andpredict(X)
, whereX
is the matrix of features,y
is the vector of labels, andsample_weight
is a vector of weights; labelsy
and predictions returned bypredict(X)
are either 0 or 1 – e.g. scikit-learn classifiers. - constraints (str or fairlearn.reductions.Moment) – If string, keyword
denoting the
fairlearn.reductions.Moment
object defining the disparity constraints – e.g., “DemographicParity” or “EqualizedOdds”. For a full list of possible options seeself.model.moments
. Otherwise, provide the desiredMoment
object defining the disparity constraints. - eps – Allowed fairness constraint violation; the solution is
guaranteed to have the error within
2*best_gap
of the best error under constraint eps; the constraint violation is at most2*(eps+best_gap)
. - T – Maximum number of iterations.
- nu – Convergence threshold for the duality gap, corresponding to a conservative automatic setting based on the statistical uncertainty in measuring classification error.
- eta_mul – Initial setting of the learning rate.
- drop_prot_attr – Boolean flag indicating whether to drop protected attributes from training data.
Methods
fit
Learns randomized model with less bias get_params
Get parameters for this estimator. predict
Predict class labels for the given samples. predict_proba
Probability estimates. score
Return the mean accuracy on the given test data and labels. set_params
Set the parameters of this estimator. -
__init__
(prot_attr, estimator, constraints, eps=0.01, T=50, nu=None, eta_mul=2.0, drop_prot_attr=True)[source]¶ Parameters: - prot_attr – String or array-like column indices or column names of protected attributes.
- estimator – An estimator implementing methods
fit(X, y, sample_weight)
andpredict(X)
, whereX
is the matrix of features,y
is the vector of labels, andsample_weight
is a vector of weights; labelsy
and predictions returned bypredict(X)
are either 0 or 1 – e.g. scikit-learn classifiers. - constraints (str or fairlearn.reductions.Moment) – If string, keyword
denoting the
fairlearn.reductions.Moment
object defining the disparity constraints – e.g., “DemographicParity” or “EqualizedOdds”. For a full list of possible options seeself.model.moments
. Otherwise, provide the desiredMoment
object defining the disparity constraints. - eps – Allowed fairness constraint violation; the solution is
guaranteed to have the error within
2*best_gap
of the best error under constraint eps; the constraint violation is at most2*(eps+best_gap)
. - T – Maximum number of iterations.
- nu – Convergence threshold for the duality gap, corresponding to a conservative automatic setting based on the statistical uncertainty in measuring classification error.
- eta_mul – Initial setting of the learning rate.
- drop_prot_attr – Boolean flag indicating whether to drop protected attributes from training data.
-
fit
(X, y)[source]¶ Learns randomized model with less bias
Parameters: - X (pandas.DataFrame) – Training samples.
- y (array-like) – Training labels.
Returns: self
-
predict
(X)[source]¶ Predict class labels for the given samples. :param X: Test samples. :type X: pandas.DataFrame
Returns: numpy.ndarray – Predicted class label per sample.
-
predict_proba
(X)[source]¶ Probability estimates.
The returned estimates for all classes are ordered by the label of classes.
Parameters: X (pandas.DataFrame) – Test samples. Returns: numpy.ndarray – Returns the probability of the sample for each class in the model, where classes are ordered as they are in self.classes_
.