Repository navigation
Allow CoordinateDescent 0.5 - #4
Merged
Merged
Conversation
- Compat CoordinateDescent "0.4, 0.5"; version 0.2.1 - The second stages copied the options field by field into a new CDOptions, which would drop relativeTol, the field CoordinateDescent 0.5 adds; _warmStart copies every field and sets warmStart - CDInverseKroneckerLoss and CDInverseReducedSymKroneckerLoss define coordinateScale and responseScale (when CoordinateDescent has them), as for its quadratic loss, so the relative stopping rule of CoordinateDescent 0.5 does not depend on the units of Σx and Σy; the curvature is shared with descendCoordinate! - Tests for the copied options, the scales against those of CDQuadraticLoss with the same Hessian, and the invariance of the solution and the number of passes to the scale of Σx and Σy Co-Authored-By: Claude Opus 5.5 <[email protected]>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4 +/- ##
=======================================
Coverage 98.64% 98.64%
=======================================
Files 12 12
Lines 1403 1407 +4
=======================================
+ Hits 1384 1388 +4
Misses 19 19 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Summary
Widens the CoordinateDescent compat to
"0.4, 0.5"(version 0.2.1) and adapts the package to the two breaking changes of CoordinateDescent 0.5 that affect it.CDOptions(; maxIter=options.maxIter, …, warmStart=true)). That dropsrelativeTol, the field CoordinateDescent 0.5 adds, so a caller'srelativeTol = falsewould be ignored._warmStart(options)copies every field and setswarmStart, and works with both versions.coordinateScaleandresponseScaleof the loss, and losses that do not define them keep the absolute rule.CDInverseKroneckerLossandCDInverseReducedSymKroneckerLossnow define them asCDQuadraticLossdoes: the square root of the curvature along each coordinate, and the largest|bₖ| / √aₖ. The definitions are guarded byisdefined(CoordinateDescent, :coordinateScale), so the package still loads with 0.4. This matches CovSel's change forCDDirectDifferenceLoss(Allow CoordinateDescent 0.5 CovarianceSelection.jl#8).No API changes.
Tests
_warmStartkeeps every field, includingrelativeTolCDQuadraticLosswith the same Hessian and linear term, and multiplying Σx and Σy by a power of 2 divides the solution by its square and takes the same number of passesMerge order
CI takes CovSel from its GitHub master, which still requires CoordinateDescent 0.4 until mlakolar/CovarianceSelection.jl#8 is merged, so CI here tests 0.4 only. Merging this first is safe; rerun CI after CovSel#8 is merged to test 0.5.
🤖 Generated with Claude Code