Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context of the PR
Zero-norm blocks cause the radial proximal operators to divide by zero.
L2_05raisesZeroDivisionError, whileBlockMCPenaltyandBlockSCADproduce NaNs that can propagate through a multi-task fit. Block soft-thresholding also fails when both the block norm and threshold are zero, including unregularizedL2_1andGroupLassofits.For example, an orthogonal design with a nonzero response on one row and zero responses on the other rows reaches this case:
Contributions of the PR
Return zero for zero-norm blocks before radial scaling, and include the zero-threshold boundary in block soft-thresholding. Add regression tests for plain and compiled penalties and dense/sparse multi-task fits, comparing against the same problem without the zero-response features.
Validation on Windows with Python 3.12.14, NumPy 2.2.6, SciPy 1.15.3, Numba 0.61.2 and scikit-learn 1.7.2:
pytest -q skglm/run passes 357 tests with 17 existing xfails; the pristine tree passes 333 with the same 17 xfails.GroupLassochecks pass against the orthogonal-design solution.html-noplotbuild exits successfully on both trees with the same existing diagnostics (Sphinx reports 56 warnings, including the existingindex.rst:123ERROR: Unexpected indentation). Example plots were not executed.Other platforms, Python versions and performance were not tested. The existing float32 block soft-thresholding compilation issue is outside this fix.
Checks before merging PR