Skip to content

Badr

Badr

__init__(dset: Dataset, model: Model, metric: FairnessMetric, train_test: str = 'train', oracle: str = 'implicit', solver_cls=None, solver_kwargs=None) -> None

Parameters:

  • dset (Dataset) –

    Dataset with (X_train, y_train), (X_test, y_test), and groups.

  • model (Model) –

    Model with set_group_weights(...), fit(...), and coef_/intercept_.

  • metric (FairnessMetric) –

    Metric; bound to model if metric.model is None.

  • train_test ((train, test), default: "train" ) –

    Which split to use.

  • oracle ((implicit, stochastic), default: "implicit" ) –

    Oracle implementation to use.

  • solver_cls (type, default: None ) –

    Solver class (default: SLSQP).

  • solver_kwargs (dict, default: None ) –

    Keyword args passed to solver_cls(...).

Raises:

  • ValueError

    If oracle is not one of {"implicit", "stochastic"}.

run(**run_kwargs) -> None

Run the solver, set group weights, refit the model, and compute outputs.

Parameters:

  • **run_kwargs

    Passed to solver.run(**run_kwargs).

Sets Attributes

group_weights Learned group weights. coef_ Fitted coefficients. intercept_ Fitted intercept. fairness Metric value on the selected split. group_losses Per-group losses from the model.

set_solver(solver)

Set a solver instance to use in run.

Parameters:

  • solver

    Solver instance. If solver.oracle is None, run will set it.

Returns:

  • Badr

    Self.