You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue #96 is intentionally narrowed to the unpenalized multinomial/softmax estimator so that the public identifiability, shape, weighting, likelihood, formula, inference, and three-backend contracts can stabilize before penalties are exposed.
The penalized surface should then be delivered as one coherent work package rather than adding L2 first and leaving L1/ElasticNet/nonconvex/CV behavior fragmented across several partially compatible implementations.
Implement the complete maintained penalized multinomial logistic-regression suite, including direct-fit and CV closure for every supported tunable penalty, across NumPy, CuPy, and Torch.
The issue may be implemented through a small sequence of internal PRs, but it must remain one public capability package and must not close until the full declared matrix is complete. Do not advertise a partial penalized multinomial capability as complete.
Required penalty matrix
The initial complete package should cover, where mathematically and architecturally supported by existing statgpu penalty registries:
L2;
L1;
ElasticNet;
SCAD;
MCP;
adaptive Lasso when the required initialization/weights contract is defined;
group penalties only if a valid multiclass coefficient-group convention is fixed before implementation.
If adaptive or group penalties are excluded after design review, the issue must record the mathematical or architecture reason, explicit unsupported behavior, tests, documentation, and a separately approved follow-up. L2/L1/ElasticNet/SCAD/MCP are not optional for issue closure.
convergence diagnostics, KKT/proximal or LLA checks, and stopping rules;
unsupported solver/penalty combinations with precise errors;
backend-native computation without silent fallback or hidden full-array host transfer.
CV closure
Every tunable direct-fit capability in this issue must ship with its CV path in the same work package:
alpha/lambda/C path or grid generation;
ElasticNet mixing-parameter grid where applicable;
deterministic folds and no leakage;
sample/class weights;
fold scoring;
best-parameter selection;
tie-breaking policy;
warm-start/path reuse where valid;
full-data final refit;
final-refit inference contract where supported;
NumPy/CuPy/Torch backend parity;
failure isolation and transactional state restoration;
external CV alignment where an authoritative comparator exists.
No penalty may be marked supported by direct fit() while its CV path remains merely planned.
Inference
Define the supported inferential surface separately for:
L2 penalization;
sparsity-inducing convex penalties;
nonconvex penalties.
Strict inference remains the default where inference is offered. Unsupported inferential combinations must be explicitly estimation-only with stable error behavior, tests, and documentation; approximate inference must never be silently substituted.
glmnet or another authoritative multinomial elastic-net implementation;
validated numerical invariants and KKT/LLA checks for SCAD/MCP where no direct external API match exists.
Every comparison must state objective normalization, penalty mapping, intercept policy, class ordering, solver, tolerances, weights, and stopping criteria.
Required validation
penalty registry/export and solver-dispatch matrix;
objective, gradient, prox/LLA, KKT, and finite-difference checks as applicable;
direct-fit and CV parity for every supported penalty;
deterministic folds, no leakage, selection, and transactional refit tests;
sample/class-weight and row-replication tests where defined;
formula/array parity;
clone/pipeline/grid-search/fitted-state tests;
NumPy/CuPy/Torch parity and maintained physical-GPU validation;
Context
Issue #96 is intentionally narrowed to the unpenalized multinomial/softmax estimator so that the public identifiability, shape, weighting, likelihood, formula, inference, and three-backend contracts can stabilize before penalties are exposed.
The penalized surface should then be delivered as one coherent work package rather than adding L2 first and leaving L1/ElasticNet/nonconvex/CV behavior fragmented across several partially compatible implementations.
Roadmap: PR #89. Depends on #96.
Goal
Implement the complete maintained penalized multinomial logistic-regression suite, including direct-fit and CV closure for every supported tunable penalty, across NumPy, CuPy, and Torch.
The issue may be implemented through a small sequence of internal PRs, but it must remain one public capability package and must not close until the full declared matrix is complete. Do not advertise a partial penalized multinomial capability as complete.
Required penalty matrix
The initial complete package should cover, where mathematically and architecturally supported by existing statgpu penalty registries:
If adaptive or group penalties are excluded after design review, the issue must record the mathematical or architecture reason, explicit unsupported behavior, tests, documentation, and a separately approved follow-up. L2/L1/ElasticNet/SCAD/MCP are not optional for issue closure.
Direct-fit contract
For each supported penalty, define and test:
solver="auto"routing;CV closure
Every tunable direct-fit capability in this issue must ship with its CV path in the same work package:
No penalty may be marked supported by direct
fit()while its CV path remains merely planned.Inference
Define the supported inferential surface separately for:
Strict inference remains the default where inference is offered. Unsupported inferential combinations must be explicitly estimation-only with stable error behavior, tests, and documentation; approximate inference must never be silently substituted.
Formula and sklearn compatibility
get_params/set_params, pipelines, and grid-search behavior;Backend contract
device="cuda"/device="torch"never silently fall back;dev/AGENTS.md.External alignment
Use matched comparisons against the strongest available references, including:
Every comparison must state objective normalization, penalty mapping, intercept policy, class ordering, solver, tolerances, weights, and stopping criteria.
Required validation
Non-goals
Acceptance criteria