Skip to content

[ENH] Add naive baseline with kernel, parametric and bounding estimators#786

Open
arnavk23 wants to merge 9 commits intosktime:mainfrom
arnavk23:feature/issue-10-final-estimators
Open

[ENH] Add naive baseline with kernel, parametric and bounding estimators#786
arnavk23 wants to merge 9 commits intosktime:mainfrom
arnavk23:feature/issue-10-final-estimators

Conversation

@arnavk23
Copy link
Copy Markdown
Contributor

@arnavk23 arnavk23 commented Mar 3, 2026

Reference Issues/PRs

Fixes #10.

What does this implement/fix? Explain your changes.

This PR completes the remaining tasks from issue - the scikit-base rearchitecture for skpro v2:

1. Naive baseline density/distribution estimator with kernel support

  • Enhanced DummyProbaRegressor with new 'kernel' strategy
  • Uses Gaussian KDE (via scipy.stats.gaussian_kde) for distribution estimation

2. Composite parametric distribution estimator

  • Fits parametric distribution families (Normal, Laplace, Cauchy, t, etc.)
  • Automatically estimates scale parameter from training residuals
  • Supports multiple distribution families with flexible parameterization

3. Bounding wrapper for predictions

  • Supports lower/upper bounds with multiple bounding methods
  • Methods: 'truncate' (recommended), 'clip_mean', 'delta'
  • Applies bounds to predict, predict_proba, predict_interval, and predict_quantiles

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

No.

What should a reviewer concentrate their feedback on?

  • Correctness of kernel density estimation implementation and bandwidth handling
  • Parametric distribution fitting logic and residual-based scale estimation
  • Bounding methods implementation and edge cases (truncation, clipping, delta method)

Did you add any tests for the change?

Yes. All new estimators include:

  • Unit tests for core functionality
  • Test parameters for automated estimator checks

Any other comments?

PR checklist

For all contributions
  • 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.

…etric, and bounding estimators

This PR completes the remaining tasks from issue sktime#10 - the scikit-base
rearchitecture for skpro v2:

1. Naive baseline density/distribution estimator with kernel support
   - Enhanced DummyProbaRegressor with new 'kernel' strategy
   - Uses Gaussian KDE (via scipy.stats.gaussian_kde) for distribution estimation
   - Supports configurable bandwidth and number of samples
   - Maintains backward compatibility with existing 'empirical' and 'normal' strategies

2. Composite parametric distribution estimator
   - New ParametricRegressor that wraps sklearn regressors
   - Fits parametric distribution families (Normal, Laplace, Cauchy, t, etc.)
   - Automatically estimates scale parameter from training residuals
   - Supports multiple distribution families with flexible parameterization

3. Bounding wrapper for predictions
   - New BoundingRegressor for constraining predictions to valid ranges
   - Supports lower/upper bounds with multiple bounding methods
   - Methods: 'truncate' (recommended), 'clip_mean', 'delta'
   - Applies bounds to predict, predict_proba, predict_interval, and predict_quantiles

All estimators follow skpro's BaseProbaRegressor interface and include
comprehensive docstrings with examples and test parameters.

Fixes sktime#10
arnavk23 added 3 commits March 3, 2026 13:54
- Fix unused imports flagged by flake8
- Add BoundingRegressor to Composition section
- Add ParametricRegressor to Reduction section
- All pre-commit checks pass (except unrelated existing issues)
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.

umbrella issue - scikit-base based rearchitecture for skpro v2

1 participant