Skip to content

[ENH] VotingProbaRegressor - heterogeneous ensemble compositor#1069

Merged
fkiraly merged 5 commits into
sktime:mainfrom
Ashish-Kumar-Dash:enh/voting-probra-regressor
Jun 14, 2026
Merged

[ENH] VotingProbaRegressor - heterogeneous ensemble compositor#1069
fkiraly merged 5 commits into
sktime:mainfrom
Ashish-Kumar-Dash:enh/voting-probra-regressor

Conversation

@Ashish-Kumar-Dash

Copy link
Copy Markdown
Contributor

Reference Issues/PRs

None

What does this implement/fix? Explain your changes.

Adds VotingProbaRegressor, a heterogeneous ensemble that fits multiple
probabilistic regressors on the same data and returns a Mixture distribution
of their predictions.

Probabilistic generalization of sklearn's VotingRegressor — instead of
averaging point predictions, it combines full predictive distributions via
weighted mixture.

Key decisions for the basis of this PR:

  • Inherits from BaseMetaEstimator, BaseProbaRegressor — follows the
    Pipeline pattern for heterogeneous estimator lists
    (named_object_parameters, property-based _estimators)
  • Capability tags use AND logic across components
  • Delegates all distribution math to Mixture

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

No.

What should a reviewer concentrate their feedback on?

  • The AND logic for capability tag cloning (lines 80-84) — this is different
    from single-estimator clone_tags used elsewhere
  • Whether _estimators as a property (mirroring Pipeline._steps) is the
    preferred pattern here

Did you add any tests for the change?

The estimator is auto-discovered by the existing test framework via
get_test_params (3 parameter sets). All pass:

  • test_all_estimators — 67 passed
  • test_all_regressors — 21 passed

Any other comments?

No.

PR checklist

For all contributions
  • I've added myself to the list of contributors with any new badges I've
    earned :-)
  • The PR title starts with either [ENH], [MNT], [DOC], or [BUG].
For new estimators
  • I've added the estimator to the API reference - in
    docs/source/api_reference/regression.rst
  • 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. (N/A — no soft
    dependencies)

@Ashish-Kumar-Dash

Copy link
Copy Markdown
Contributor Author

@fkiraly among the commits you'll also find a minor comma fix regarding .all-contributorsrc

@fkiraly fkiraly added enhancement module:regression probabilistic regression module implementing algorithms Implementing algorithms, estimators, objects native to skpro labels Jun 13, 2026
@fkiraly fkiraly changed the title [ENH] add VotingProbaRegressor - heterogeneous ensemble compositor [ENH] VotingProbaRegressor - heterogeneous ensemble compositor Jun 14, 2026

@fkiraly fkiraly left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks! I made a few small changes to wrap this up:

  • I updated the API reference category
  • I improved the examples in docstring and tests, so the ensemble is indeed heterogenous
  • i fixed the dependent tag logic

@fkiraly fkiraly merged commit 2f1c948 into sktime:main Jun 14, 2026
39 checks passed
@Ashish-Kumar-Dash Ashish-Kumar-Dash deleted the enh/voting-probra-regressor branch June 14, 2026 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement implementing algorithms Implementing algorithms, estimators, objects native to skpro module:regression probabilistic regression module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants