Skip to content

feat: stacking ensembling of the top-k AutoML candidates#14

Merged
ancongui merged 1 commit into
mainfrom
feat/stacking-ensemble
Jun 25, 2026
Merged

feat: stacking ensembling of the top-k AutoML candidates#14
ancongui merged 1 commit into
mainfrom
feat/stacking-ensemble

Conversation

@ancongui

Copy link
Copy Markdown
Contributor

Modeling-depth batch 2 (TDD, real data).

AutoML(ensemble=True) stacks the top-k leaderboard candidates into one stronger model via a cross-fit meta-learner β€” the standard last-mile AutoML lift.

  • New EnsemblePort + StackingEnsemble (sklearn StackingClassifier/StackingRegressor, logistic/ridge meta-learner over the top-ensemble_size trainers).
  • The refit path is refactored into a small _build_winner helper (single-best or stack), then the existing calibration step applies β€” so ensemble and calibrate compose.
  • Off by default (classical-first unchanged); DI-resolvable via from_context.

Tests (real breast_cancer, no fakes)

  • ensemble=True β†’ winner is a StackingClassifier named stacking_ensemble, stacks β‰₯2 members, competitive holdout ROC-AUC; ensemble=False β†’ single model (unchanged).

Local gates green: ruff/format/pyright(0)/9 tests (ensemble+automl+calibration) + strict docs.

Modeling-depth batch 2: AutoML(ensemble=True) stacks the top-k leaderboard
candidates into one model via a cross-fit meta-learner (EnsemblePort +
StackingEnsemble: sklearn StackingClassifier/Regressor). Off by default
(classical-first unchanged); composes with calibrate; DI-resolvable via
from_context. Refit path refactored to a _build_winner helper. TDD on real
breast_cancer data; docs note in automl.md.
@ancongui ancongui merged commit d4fc487 into main Jun 25, 2026
4 checks passed
@ancongui ancongui deleted the feat/stacking-ensemble branch June 25, 2026 19:14
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