Skip to content

[ENH] Add UnconditionalDistfitRegressor and DeterministicReductionRegressor#994

Open
arnavk23 wants to merge 23 commits intosktime:mainfrom
arnavk23:feature/baseline-unconditional-densities
Open

[ENH] Add UnconditionalDistfitRegressor and DeterministicReductionRegressor#994
arnavk23 wants to merge 23 commits intosktime:mainfrom
arnavk23:feature/baseline-unconditional-densities

Conversation

@arnavk23
Copy link
Contributor

@arnavk23 arnavk23 commented Mar 25, 2026

Reference Issues/PRs

Towards #7

What does this implement/fix? Explain your changes.

  • Adds two baseline regressors:
    UnconditionalDistfitRegressor: fits a univariate density to the target using distfit, ignoring features. Supports parametric, KDE, and histogram.
    DeterministicReductionRegressor: wraps a deterministic regressor, outputs Gaussian or Laplace with mean=prediction, variance=training sample variance.
  • Ensures compatibility with distfit 2.0.1: default distr_type is now 'norm' (was 'best'), matching valid options.

Does your contribution introduce a new dependency? If yes, which one?

No new core dependencies. Uses distfit as a soft dependency.

What should a reviewer concentrate their feedback on?

  • Correctness of Laplace/Gaussian output and distribution parameterization.

Did you add any tests for the change?

Yes, tests for all new baseline regressors and distribution options.

Any other comments?

  • KDE support in distfit is currently broken with recent scipy; test is marked xfail for future compatibility.

PR checklist

For all contributions
  • I've added myself to the list of contributors with any new badges I've earned :-)
    How to: add yourself to the all-contributors file in the skpro root directory (not the CONTRIBUTORS.md). Common badges: code - fixing a bug, or adding code logic. doc - writing or improving documentation or docstrings. bug - reporting or diagnosing a bug (get this plus code if you also fixed the bug in the PR).maintenance - CI, test framework, release.
    See here for full badge reference
  • The PR title starts with either [ENH], [MNT], [DOC], or [BUG]. [BUG] - bugfix, [MNT] - CI, test framework, [ENH] - adding or improving code, [DOC] - writing or improving documentation or docstrings.
For new estimators
  • I've added the estimator to the API reference - in docs/source/api_reference/taskname.rst, follow the pattern.
  • I've added one or more illustrative usage examples to the docstring, in a pydocstyle compliant Examples section.
  • If the estimator relies on a soft dependency, I've set the python_dependencies tag and ensured
    dependency isolation, see the estimator dependencies guide.

- Change default distr_type to 'norm' (was 'best'), matching valid distfit options
- Update test to use distr_type='norm' explicitly
- Mark KDE test as xfail due to upstream scipy/distfit incompatibility
- Fix Laplace attribute checks in tests to use 'scale' (not 'b')
- Ensure all baseline regressor tests pass or are correctly handled
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