Fairness and Algorithmic Bias

When deploying machine learning models in sensitive domains (like lending, hiring, or criminal justice), it is crucial to ensure that the model’s predictions are fair and unbiased with respect to protected attributes (e.g., race, gender, age).

FairClassifier

The fairness.FairClassifier enforces fairness constraints natively during the boosting process. It supports definitions of fairness such as Demographic Parity or Equalized Odds, by regularizing the splits that would disproportionately impact the protected group.

Example:

from perpetual.fairness import FairClassifier
import numpy as np

# sensitive_feature is the column index of the protected attribute (0 or 1) in X
# lam is the strength of the fairness penalty
model = FairClassifier(
    sensitive_feature=3,
    fairness_type="demographic_parity",
    lam=2.0
)

model.fit(X, y)

# Predictions will be constrained to satisfy the fairness metric
y_pred = model.predict(X_test)

Tutorials

For detailed walkthroughs, see: