holisticai.bias.mitigation.FairletClusteringPreprocessing#

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

Fairlet decomposition [1] is a pre-processing approach that computes fair micro-clusters where fairness is guaranteed. They then use the fairlet centers as a newly transformed dataset from the original. This transformed fairlet-based dataset is then provided to vanilla clustering algorithms, and hence, we obtain approximately fair clustering outputs as a result of the fairlets themselves being fair.

Parameters

decompositionstr, optional

Fairlet decomposition strategy, available: Vanilla, Scalable, MCF. Default is Vanilla.

pint, optional

fairlet decomposition parameter for Vanilla and Scalable strategy. Default is 1.

qint, optional

fairlet decomposition parameter for Vanilla and Scalable strategy. Default is 3.

seedint, optional

Random seed. Default is None.

Examples

>>> from holisticai.bias.mitigation import FairletClusteringPreprocessing
>>> mitigator = FairletClusteringPreprocessing()
>>> train_data_transformed = mitigator.fit_transform(train_data, group_a, group_b)

References

fit_transform(X: ndarray, group_a: ndarray, group_b: ndarray, sample_weight: ndarray | None = None)[source]#

Fits the model by learning a fair cluster.

Parameters

Xmatrix-like

input matrix

group_aarray-like

binary mask vector

group_barray-like

binary mask vector

sample_weightarray-like, optional

Samples weights vector. Default is None.

Returns

matrix

Transformed matrix

transform(X)[source]#

Transforms the model by learning a fair cluster.

Parameters

Xmatrix-like

input matrix

Returns

matrix

Transformed matrix