Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correct behavior of L-curve selection methods #340

Merged
merged 3 commits into from
Jun 23, 2022
Merged

Correct behavior of L-curve selection methods #340

merged 3 commits into from
Jun 23, 2022

Conversation

luisfabib
Copy link
Collaborator

  • Fix the behavior of the lc method for L-curve regularization parameter selection in selregparam. The method was seeking the regularization parameter by minimizing the curvature of the L-curve instead of maximizing it. Correct the related test.
  • Prevent the case np.log(0) = np.inf from occurring when evaluating too large regularization parameter values that would end up with full-zero penalty terms.

@luisfabib luisfabib added the bugfix Patches something that isn't working label Jun 22, 2022
@luisfabib luisfabib added this to the v0.15.0 milestone Jun 22, 2022
@luisfabib luisfabib requested a review from stestoll June 22, 2022 07:41
@luisfabib luisfabib self-assigned this Jun 22, 2022
@stestoll stestoll merged commit 1cb810a into main Jun 23, 2022
@stestoll stestoll deleted the fix/lcurve branch June 23, 2022 17:53
luisfabib added a commit that referenced this pull request Jun 29, 2022
* bumb version to v0.15.0-dev (#307)

* examples: fix identifiablity analysis grid values (#314)

* remove line that should be substituted by the subsequent GHA (#313)

* Use Scipy's `eigh` instead of Numpy's to avoid convergence error (#311)

* Use Scipy's eigh instead of Numpy's to avoid convergence error

* fix error

* Enable the pickling of DeerLab's objects  (#312)

* fix pickling of fit result objects

* add save and load utility functions for pickling, add test

* improve test

* fix pickling of model objects

* fix pickling of merged and linearly combined models

* fix pickling of model objects with linked parameters

* fix some tests

* fix pickling of model objects with functionalized parameters

- introduces the dill package as a dependency

* fix error

* improve docstrings and add to API reference

* rename save to store_pickle and load to load_pickle

add safety warning about reading pickles

* rename imports

* remove unused import

* fix another import error

* `docs`: add important note to user guide on experimental deadtime correction  (#320)

* Fix dependency of DeerLab's documentation logo on system fonts (#328)

* add specific web font of DeerLab's title font

* docs: make web logo independent of system fonts

* docs: minor CSS fixes

* fix minor bug when printing fit results with most parameters frozen (#329)

* Fix bug when propagating bootstrapped uncertainty in presence of round-off errors (#325)

* UQresult: expand join() method to work with bootstrapped results

* fix bug when propagating bootstrapped results with round-off errors

* docs: add docstring for evaluate and propagate methods (#321)

* docs: minor edits, CSS fixes, and one 404 fix (#331)

* docs: minor edits, CSS fixes, and one 404 fix

* add missing functions to reference

* minor edit and fix

* Remove hard dependency of the DeerLab's installation routine and scripts on MKL (#330)

* installation: remove hard dependency of installer on MKL 

- simplify setup.py
- update workflows 
- add new script for linking against MKL in Windows

* fixr random numerical error and warning during tests

* check failing tests

* CI workflow, do not use caching

* change Ci job names

* Avoid use of pre-release Numpy versions during installation (#336)

* setup.py: avoid installation of numpy pre-releases

* Fix randomly failing GHA WinOS workflow (#337)

* refactor CI workflow

* reintroduce MKL for GHA WinOS runners

* fix MKL upgrade script

* answer yes to uninstall

* Prevent potential future bugs when normalizing distributions throughout (#335)

* `bootstrap_analysis`: better noise estimation and add option to specify noise levels (#334)

* bootstrap_analysis: allow specifying noise levels

- otherwise estimate noise level from experimental dataset not from the fit residuals

* refactor bootstrap_analysis for more general and faster tests

* Fix automated upload to PyPI via token (#338)

* Correct behavior of L-curve selection methods (#340)

* selregparam: fix behavior of L-curve (LC method)  selection criterion

* selregparam: prevent `np.log(0)=np.inf ` cases in L-curve methods

* selregparam: remove useless line from a debugging stage

* Remove unused lines in `dipolarmodel` (#341)

* Fix apparent typo

* Remove unused lines

Co-authored-by: Luis Fabregas <luis.fabregas@phys.chem.ethz.ch>

* `dipolarmodel`: Fix error when specifying a limited excitation bandwidth (#342)

* dipolarmodel: fix bug when specifying the excitation bandwidth

* small fix

* fix logic error

* fit: properly pass the user-supplied noise level to the bootstrapping (#343)

* remove unused lines in example (#345)

* Fix documentation navigation menu on mobile phones and collapsed windows and other edits (#346)

* fix navigation menu on mobile phone and collapsed windows

* remove unnecessary navbar items

* remove non-existent references

* minor CSS fix

* bump version to v0.14.2

* update changelog to v0.14.2

* setup.py: fix merge error

Co-authored-by: edmundxcvi <59712516+edmundxcvi@users.noreply.github.com>
luisfabib added a commit that referenced this pull request Aug 10, 2022
* bumb version to v0.15.0-dev (#307)

* examples: fix identifiablity analysis grid values (#314)

* remove line that should be substituted by the subsequent GHA (#313)

* Use Scipy's `eigh` instead of Numpy's to avoid convergence error (#311)

* Use Scipy's eigh instead of Numpy's to avoid convergence error

* fix error

* Enable the pickling of DeerLab's objects  (#312)

* fix pickling of fit result objects

* add save and load utility functions for pickling, add test

* improve test

* fix pickling of model objects

* fix pickling of merged and linearly combined models

* fix pickling of model objects with linked parameters

* fix some tests

* fix pickling of model objects with functionalized parameters

- introduces the dill package as a dependency

* fix error

* improve docstrings and add to API reference

* rename save to store_pickle and load to load_pickle

add safety warning about reading pickles

* rename imports

* remove unused import

* fix another import error

* `docs`: add important note to user guide on experimental deadtime correction  (#320)

* Fix dependency of DeerLab's documentation logo on system fonts (#328)

* add specific web font of DeerLab's title font

* docs: make web logo independent of system fonts

* docs: minor CSS fixes

* fix minor bug when printing fit results with most parameters frozen (#329)

* Fix bug when propagating bootstrapped uncertainty in presence of round-off errors (#325)

* UQresult: expand join() method to work with bootstrapped results

* fix bug when propagating bootstrapped results with round-off errors

* docs: add docstring for evaluate and propagate methods (#321)

* docs: minor edits, CSS fixes, and one 404 fix (#331)

* docs: minor edits, CSS fixes, and one 404 fix

* add missing functions to reference

* minor edit and fix

* Remove hard dependency of the DeerLab's installation routine and scripts on MKL (#330)

* installation: remove hard dependency of installer on MKL 

- simplify setup.py
- update workflows 
- add new script for linking against MKL in Windows

* fixr random numerical error and warning during tests

* check failing tests

* CI workflow, do not use caching

* change Ci job names

* Avoid use of pre-release Numpy versions during installation (#336)

* setup.py: avoid installation of numpy pre-releases

* Fix randomly failing GHA WinOS workflow (#337)

* refactor CI workflow

* reintroduce MKL for GHA WinOS runners

* fix MKL upgrade script

* answer yes to uninstall

* Prevent potential future bugs when normalizing distributions throughout (#335)

* `bootstrap_analysis`: better noise estimation and add option to specify noise levels (#334)

* bootstrap_analysis: allow specifying noise levels

- otherwise estimate noise level from experimental dataset not from the fit residuals

* refactor bootstrap_analysis for more general and faster tests

* Fix automated upload to PyPI via token (#338)

* Correct behavior of L-curve selection methods (#340)

* selregparam: fix behavior of L-curve (LC method)  selection criterion

* selregparam: prevent `np.log(0)=np.inf ` cases in L-curve methods

* selregparam: remove useless line from a debugging stage

* Remove unused lines in `dipolarmodel` (#341)

* Fix apparent typo

* Remove unused lines

Co-authored-by: Luis Fabregas <luis.fabregas@phys.chem.ethz.ch>

* `dipolarmodel`: Fix error when specifying a limited excitation bandwidth (#342)

* dipolarmodel: fix bug when specifying the excitation bandwidth

* small fix

* fix logic error

* fit: properly pass the user-supplied noise level to the bootstrapping (#343)

* remove unused lines in example (#345)

* Fix documentation navigation menu on mobile phones and collapsed windows and other edits (#346)

* fix navigation menu on mobile phone and collapsed windows

* remove unnecessary navbar items

* remove non-existent references

* minor CSS fix

* docs: force light theme even in dark themed browsers (#350)

* fit: avoid unfreezing of all parameters when applying normalization (#352)

* Background models mathematical fixes (#351)

* bg_models: fix sign of background phase-shift's time-dependence

* add strong tests against numerical integration

* fix small mathematical errors in bg_homfractal models

* Fix scheduled CI test suite (#353)

* fix scheduled CI

- deprecate testing of Python 3.6 and 3.7
- add MKL linking to Windows
- fix pip installation errors

* fix typo in package name

* Modelling system quality of life improvements (#354)

* model: add method setas to import parameter metadata

* add hyperparameter info to results summary

* improve attribute request error messages in FitResult object

* improve error messaging during model evaluation

* Fix errors in GHA publishing workflow (#355)

* fix build and publish to PyPI and Anaconda

- deprecate conda support for python 3.6 and 3.7

* minor edit

* Minor edits to files edited in previous PRs (#356)

* fix minor logic error

* minor documentation update

* fix minor bug

* docs: fix theme package version to solve dark theme issues (#359)

* docs: fix theme package version to solve dark theme issues

* upgrade Python version in workflows

* use older Sphinx version to build for compatibility

* UQResults: add docstrings for undocumented attributes (#360)

* dd_randcoil: fix description of model parameters (#361)

* add chemistry travel award funding to support page (#364)

* Fix PyPI and Anaconda build and upload workflows (#363)

* fix PyPI build and upload workflow according to official Python docs

* fix GHA for conda build and upload

* docs: fix multiple CSS issues and flex container bugs (#365)

* bump VERSION to v0.14.4

* update the changelog

* `fit`: add missing arguments to docstring (#367)

* `dipolarmodel`: add `pulselength` optional argument to experiment models (#368)

* model: add start values and frozen values to the printed parameter table (#369)

* update changelog

Co-authored-by: edmundxcvi <59712516+edmundxcvi@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugfix Patches something that isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants