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

[ENH] metrics rework part III - folding metric mixins into intermediate class, interface consolidation #2502

Merged
merged 53 commits into from
Jun 5, 2022

Conversation

fkiraly
Copy link
Collaborator

@fkiraly fkiraly commented Apr 18, 2022

This PR continues refactor and rework of the current metrics interface.

This PR uses the tests in #2496 and builds upon #2500.

The following changes are made relative to #2500:

  • BaseForecastingErrorMetricFunc is changed so it substitutes parameters into the adapted numpy function, which must be present as a class variable func. This is generic (using get_params) so it replaces all the repetitive boilerplate in the mixins.
  • all intermediate mixin classes are removed, and replaced by direct inheritance from BaseForecastingErrorMetricFunc.
  • with one exception, _ScaledMetricTags, which had boilerplate but also a repetitive tags block it supplied to multiple classes. The boilerplate is removed, but the tags block is retained, so the class is still used for keeping the tags block in one place.
  • as a consequence, func and name are no longer passed up to the base class and set by constructors. func is now present as a class variable (instead of being set in constructors), and name defaults to the class name string.

@fkiraly fkiraly added refactor Restructuring without changing its external behavior. Neither fixing a bug nor adding a feature. module:metrics&benchmarking metrics and benchmarking modules labels Apr 18, 2022
@fkiraly fkiraly merged commit 337824f into main Jun 5, 2022
@fkiraly fkiraly deleted the metrics-folding branch June 5, 2022 12:04
@fkiraly fkiraly mentioned this pull request Jun 10, 2022
fkiraly added a commit that referenced this pull request Jul 28, 2022
This PR continues rework of the current metrics interface.

This PR uses the tests in #2496 and builds upon #2500 and #2502

The following changes are made relative to #2502:

* extending `BaseForecastingErrorMetricFunc` to accept hierarchical input
* enable averaging options via the `multilevel` parameter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module:metrics&benchmarking metrics and benchmarking modules refactor Restructuring without changing its external behavior. Neither fixing a bug nor adding a feature.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants