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
modelifmetric.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
oracleis 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,runwill set it.
Returns:
-
Badr–Self.