Skip to content

Verify HalvingGridSearchCV / HalvingRandomSearchCV interop with MCUVScaler + PLS #398

Description

@kgdunn

Background

sklearn 1.0+ ships HalvingGridSearchCV and HalvingRandomSearchCV (the "successive halving" hyperparameter search) under sklearn.model_selection. They're faster than GridSearchCV on large grids - relevant for serious users tuning n_components plus preprocessing options jointly across PLS / TPLS pipelines.

The sklearn Pipeline interop audit in #383 only exercised GridSearchCV. The halving searchers are slightly more demanding of custom estimators: they call partial_fit (when supported), introspect n_iter_, and dispatch on resource parameters in ways GridSearchCV doesn't. Custom estimators sometimes trip on the resource scheduling.

What to do

  1. Add tests:
    • HalvingGridSearchCV(Pipeline([MCUVScaler(), PLS()]), {"pls__n_components": [1,2,3,4,5]})
    • HalvingRandomSearchCV analogue.
    • Both with resource="n_samples" (the default) and a Pipeline-aware budget.
  2. Fix anything that surfaces. Most likely candidates: missing partial_fit, missing tags, n_features_in_ validation paths.

Why this matters less than #383's core fixes

GridSearchCV works (verified in #383). Halving is an optimisation. The reason to do this issue is purely to know whether the more modern search APIs work, not because they're currently blocking anyone.

Related

Spun out from the sklearn interop audit attached to #383.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions