Skip to content

Add Hessian check for 2-parameter problems#363

Merged
NicolaCourtier merged 36 commits into
developfrom
362-Hessian-check
Dec 20, 2024
Merged

Add Hessian check for 2-parameter problems#363
NicolaCourtier merged 36 commits into
developfrom
362-Hessian-check

Conversation

@NicolaCourtier

Copy link
Copy Markdown
Member

Description

Add a classify_using_Hessian function that can assess the identifiability of an optimisation result and return an informative message to the user.

Issue reference

Fixes #362.

Review

Before you mark your PR as ready for review, please ensure that you've considered the following:

  • Updated the CHANGELOG.md in reverse chronological order (newest at the top) with a concise description of the changes, including the PR number.
  • Noted any breaking changes, including details on how it might impact existing functionality.

Type of change

  • New Feature: A non-breaking change that adds new functionality.
  • Optimization: A code change that improves performance.
  • Examples: A change to existing or additional examples.
  • Bug Fix: A non-breaking change that addresses an issue.
  • Documentation: Updates to documentation or new documentation for new features.
  • Refactoring: Non-functional changes that improve the codebase.
  • Style: Non-functional changes related to code style (formatting, naming, etc).
  • Testing: Additional tests to improve coverage or confirm functionality.
  • Other: (Insert description of change)

Key checklist:

  • No style issues: $ pre-commit run (or $ nox -s pre-commit) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
  • All unit tests pass: $ nox -s tests
  • The documentation builds: $ nox -s doctest

You can run integration tests, unit tests, and doctests together at once, using $ nox -s quick.

Further checks:

  • Code is well-commented, especially in complex or unclear areas.
  • Added tests that prove my fix is effective or that my feature works.
  • Checked that coverage remains or improves, and added tests if necessary to maintain or increase coverage.

Thank you for contributing to our project! Your efforts help us to deliver great software.

@NicolaCourtier NicolaCourtier linked an issue Jun 14, 2024 that may be closed by this pull request
@codecov

codecov Bot commented Jun 14, 2024

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 96.96970% with 2 lines in your changes missing coverage. Please review.

Project coverage is 99.19%. Comparing base (c8b00e6) to head (bac1082).
Report is 109 commits behind head on develop.

Files with missing lines Patch % Lines
pybop/_classification.py 96.92% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #363      +/-   ##
===========================================
+ Coverage    99.08%   99.19%   +0.10%     
===========================================
  Files           52       59       +7     
  Lines         3605     4333     +728     
===========================================
+ Hits          3572     4298     +726     
- Misses          33       35       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@NicolaCourtier NicolaCourtier marked this pull request as ready for review December 6, 2024 11:29
@NicolaCourtier

Copy link
Copy Markdown
Member Author

I think we should continue with the slightly low coverage (98%) - the Hessian check is missing a test on the case where the optimal point is a saddle point for which we would need a relevant optimisation problem (this relates to #391).

@BradyPlanden BradyPlanden left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @NicolaCourtier, a few suggestions/comments

Comment thread pybop/_classification.py Outdated
Comment thread pybop/_classification.py Outdated
Comment thread pybop/_classification.py Outdated
Comment thread pybop/_classification.py Outdated
Comment thread pybop/_classification.py
Comment thread tests/integration/test_classification.py Outdated
Comment thread tests/integration/test_classification.py Outdated
Comment thread CHANGELOG.md

@BradyPlanden BradyPlanden left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - just one suggestion.

Comment thread pybop/_classification.py Outdated
@NicolaCourtier NicolaCourtier merged commit 7d8f2e2 into develop Dec 20, 2024
@NicolaCourtier NicolaCourtier deleted the 362-Hessian-check branch December 20, 2024 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a simple post-optimisation identifiability check

2 participants