SparseGroupLasso#

class superglm.SparseGroupLasso(
lambda1: float | Literal['auto'] | None = None,
alpha: float = 0.5,
flavor: Flavor | None = None,
features: str | list[str] | None = None,
)#

Bases: object

Sparse group lasso: lambda1 * [(1-alpha) * group_L2 + alpha * L1].

Parameters:
lambda1float, {“auto”}, or None

Regularisation strength. None disables selection and "auto" explicitly requests automatic calibration.

alphafloat

Mixing parameter in [0, 1]. 0 = pure group lasso, 1 = pure L1.

flavorFlavor or None

Optional modifier (e.g. Adaptive).

prox_group(
bg: NDArray,
group: GroupSlice,
step: float,
) → NDArray#

L1 soft-threshold then group L2 prox for a single group.

prox(
beta: NDArray,
groups: list[GroupSlice],
step: float,
) → NDArray#

Proximal operator via decomposition: L1 soft-threshold then group L2 prox.

eval(
beta: NDArray,
groups: list[GroupSlice],
) → float#

Penalty value.