Skip to content

[ENH] - Add metrics in linear space#387

Open
TomDonoghue wants to merge 3 commits intomodel_accessfrom
linear_metrics
Open

[ENH] - Add metrics in linear space#387
TomDonoghue wants to merge 3 commits intomodel_accessfrom
linear_metrics

Conversation

@TomDonoghue
Copy link
Member

@TomDonoghue TomDonoghue commented Mar 9, 2026

This PR adds the option to a Metric definition to specify the spacing of the data that the metric operates on. This means that all the previous definitions default to log-data (stay the same), but that new / additional metrics can easily be added that compute in linear spacing. To show this, linear data versions of the standard metrics (MAE & R-squared) are added.

SideNote: the PR depends on #386 (and is currently directed there) which moves things around a little to alias across sub-objects, such as to more easily get the data & model while specifying spacing.

# Initialize a fit model with linear metrics
fm = SpectralModel(metrics=['error_mae_lin',  'gof_rsquared_lin'])

# Initialize a fit model with both log & linear spacing metrics
fm = SpectralModel(metrics=['error_mae', 'error_mae_lin',
                            'gof_rsquared', 'gof_rsquared_lin'], verbose=False)
fm.report(freqs, powers)

The latter code segment gives an output like this:
Screenshot 2026-03-09 at 8 50 23 PM

Note: as is, this adds the option to define each metric definition with a data spacing. If the goal is instead to have each declared metric available in log and linear space, then the current approach would end up with two versions of every defined metric - there is probably a shortcut to programmatically define this (e.g. make it compositional to define metrics agnostic to spacing, and then allow for selecting / specifying any metric in any spacing).

@TomDonoghue TomDonoghue changed the base branch from main to model_access March 9, 2026 20:35
@fooof-tools fooof-tools deleted a comment from codecov bot Mar 10, 2026
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.

1 participant