holisticai.bias.mitigation.LearningFairRepresentation#

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

Learning fair representations [1] finds a latent representation which encodes the data well while obfuscates information about protected attributes [1].

Parameters

kint, optional

Number of prototypes. Default is 5

Axfloat, optional

Input recontruction quality term weight. Default is 0.01

Ayfloat, optional

Output prediction error. Default is 1.0

Azfloat, optional

Fairness constraint term weight. Default is 50.0

maxiterint, optional

Maximum number of iterations. Default is 5000

maxfunint, optional

Maximum number of function evaluations. Default is 5000

verboseint, optional

If zero, then no output. Default is 0

seedint, optional

Seed to make predict repeatable. Default is None

Examples

>>> from holisticai.bias.mitigation import LearningFairRepresentation
>>> mitigator = LearningFairRepresentation(**params)
>>> train_data_transformed = mitigator.fit_transform(train_data, group_a, group_b)
>>> test_data_transformed = mitigator.transform(test_data, group_a, group_b)

References

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

Fit data to learn a fair representation transform.

Parameters

Xmatrix-like

Input data

yarray-like

Target vector

group_aarray-like

Group membership vector (binary)

group_barray-like

Group membership vector (binary)

Returns

Self

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

Fit and transform

Parameters

Xmatrix-like

Input data

yarray-like

Target vector

group_aarray-like

Group membership vector (binary)

group_barray-like

Group membership vector (binary)

Returns

Self

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

Transform data to a fair representation

Parameters

Xmatrix-like

Input data

group_aarray-like

Group membership vector (binary)

group_barray-like

Group membership vector (binary)

Returns

array-like

Transformed data