Bump version to 2.2.0 - #40
Merged
Merged
Conversation
Everything since the v2.1.2 tag: the evidence objective and prior covariance corrections, which change the hyperparameters `fit()` selects, and the packaging and CI work.
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.
rfest/version.pyis the single source —pyproject.tomlreads it through[tool.setuptools.dynamic]— so this is the whole change. A localuv buildproduces
rfest-2.2.0-py3-none-any.whlandimport rfestreports2.2.0.Release notes, ready to paste
Everything below is the span from the
v2.1.2tag to master: one README commitand #32 through #38.
Corrected — this release changes results
Any hyperparameters selected by
fit()on an evidence-optimized model differfrom 2.1.2. If you have published numbers from
ASD,ALD,ARD,Ridge,fASDorsARD, they were produced with the objective described below.marginal needs its inverse (Fix evidence: use the posterior precision in the quadratic term #32, Use the posterior precision in the sARD evidence quadratic term #34). Not a constant offset, so it changed
which hyperparameters won: on a smooth 1D RF the shipped objective was
monotone in the smoothness scale and preferred the largest value on offer,
where the exact evidence peaks near the true RF width. Reported by @memming
in negative_log_evidence: quadratic term uses the posterior covariance where the evidence needs its inverse #31, who also fixed the first two of the three copies.
scale, and the returned
Cwas not the inverse of the returnedC_inv(Scale the prior covariance jitter to the prior, and return C with its own inverse #33). Worth up to ~143 nats on
ASDat moderate smoothness. ForALDatthe scales in the test suite, the locality prior was being replaced by ridge
outright, because a
1e-7jitter swamps prior variances of1e-37.ARDraisedAttributeErroron every call (Replace np.product, removed in numpy 2, so ARD runs again #37) —np.product, removedin numpy 2.
GLMfit raisedTypeError(Build the mle slice boundaries without a nested list #36) —jnp.hstackno longer acceptsa list as an element.
Changed
3.10 the resolver lands on a jax from 2023.
pip install rfestpreviously installednone of jax, numpy, scipy, scikit-learn or matplotlib —
setup.cfghad noinstall_requiresandrequirements.txtis not consulted by an install.opencv-python, used for contour areas inrfest.check, is thecontoursextra:
pip install "rfest[contours]".pyproject.toml;setup.cfgandrequirements.txtare gone.Added
ARD,sARDand the prior kernels, none of which had any, and atest comparing
negative_log_evidenceagainst a closed-form Gaussianmarginal derived independently of the implementation.
Two notes before releasing
On the number. 2.2.0 as asked. Worth knowing that this both raises the
Python floor and changes numerical output, which is the usual case for a major
bump — say the word if you would rather this were 3.0.0.
On the order with #39. Publishing the GitHub release is what triggers the
upload, so:
builds and then fails to upload.
So either release 2.2.0 first and switch afterwards, or configure PyPI, merge
#39, then release.
No tag in this PR — creating the GitHub release creates
v2.2.0and fires thepublish workflow.