Merged
Conversation
Directly use arange with the input min, max, and step values to simplify behavior for both polynomials and lam-using methods. Max values are no longer included, so breaking behavior.
Allows beads to be incorporated into optimization frameworks. Also updated the beads documentation to add more details.
Includes both true and stochastic calculations.
Versions prior to 1.15.0 did not allow 1d indexing for the sparse arrays.
Will be returned from relevant algorithms to more easily calculate the effective dimensions for optimize_pls.
Also fixed polynomial coefficient shapes so they are not an incorrect cross reference.
Not a deprecation since `tck` was only added to the params dict during v1.3.0 development.
Address issue #63. Only a breaking change if inputting weights or using the output weights.
Will expand the documentation in a separate location in the docs.
Mostly just needed to document omitted terms, and re-split output fidelity and weighted sum of squared residual param items.
Owner
Author
|
More flaky test failures in the 3.14 test case that I can't recreate locally... |
Owner
Author
|
CI failure is unrelated, now in 3.12... The aspls sparse comparison needs rewritten given how flaky the test seems to be, but that's outside the scope of this PR. |
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.
Description
Adds the new optimizer method
optimize_plsin order to estimate the bestlamvalue for most penalized least squares methods in pybaselines (all Whittaker and P-Spline methods, plus beads). The method uses either GCV, BIC, or "U-Curve", which is essentially a simplified L-curve approach, as selection criteria for identifying the optimal lam.I'm not married to the name "U-Curve"; Park, et al's implementation which it was originally based on was never given a name, and something like "L-curve-simplified" is clunky... U-curve is used in literature for a lot of other L-curve-based methods, so I'm hesitant to use it in the final version.
The current implementation is not complete, but the
optimize_lambranch has unintentionally encompassed additional changes and is preventing making other easier, more granular, changes, so best to merge it now and address remaining points later. Missing things for later reference:optimize_extended_rangeAlso of note in regards to new features: this introduces "Result" objects; currently implemented for Whittaker smoothing and P-splines, but I could see this extending to polynomials as well. The idea is that these Result objects handle any additional calculations that aren't required within the actual algorithm, so things like computing polynomial coefficients could be deferred to these objects such that parameters like
return_coeforreturn_dofcan be deprecated and performed by the result objects.Type of Pull Request
Pull Request Checklist
if applicable.