Skip to content

feat: remove default hyperparameter grids and drop SVC default (roadmap 2.3, 2.5) - #42

Merged
rxavier merged 1 commit into
mainfrom
roadmap/2.3-2.5-remove-grids-tighten-defaults
Jul 31, 2026
Merged

feat: remove default hyperparameter grids and drop SVC default (roadmap 2.3, 2.5)#42
rxavier merged 1 commit into
mainfrom
roadmap/2.3-2.5-remove-grids-tighten-defaults

Conversation

@rxavier

@rxavier rxavier commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

Roadmap 2.3 (delete default hyperparameter grids) and 2.5 (tighten default estimator lists). This is a subtractive change — no new capability, it removes opinionated defaults and a latent bug.

Changes

2.3 — remove default hyperparameter grids

  • Deleted poniard/utils/hyperparameters.py entirely (GRID dict — including the XGBoost/CatBoost/LightGBM grids for a non-dependency — and get_grid).
  • tune_estimator no longer falls back to a GRID lookup on grid=None. grid is now required and passed through verbatim to sklearn's search classes (thin wrapper, no surprise defaults). Missing/empty grid raises a clear ValueError.
  • Permanently fixes the LinearSVR/SVR grid-key mismatch (roadmap 1.2): the grid was keyed "SVR" while the shipped estimator is LinearSVR, so the default-grid path raised NotImplementedError. LinearSVR fits cleanly with no default grid.

2.5 — drop SVC from classifier defaults

  • Removed SVC(kernel="linear", probability=True) (slow, rarely competitive on tabular data) and its unused import. Regressor defaults were already aligned with the roadmap's target list and are unchanged.

Breaking changes

  • tune_estimator(estimator_name, X, y) without a grid now raises ValueError (previously it looked up opinionated defaults).
  • Grid keys must follow sklearn's pipeline convention (<estimator_name>__<param>), as before.

Tests

  • test_tune.py: explicit-grid path for all three modes + error path (missing grid, empty grid).
  • Full suite: 133 passed; ruff clean.

…ap 2.3, 2.5)

- delete poniard/utils/hyperparameters.py (GRID incl. XGBoost grids and
  get_grid) and the grid=None lookup path in tune_estimator; grid is now
  required and passed through verbatim to sklearn's search classes.
- missing/empty grid raises a clear ValueError.
- drop SVC(kernel='linear', probability=True) from classifier defaults:
  slow and rarely competitive on tabular data.
- fixes the LinearSVR/SVR grid-key mismatch (1.2) for good; LinearSVR fits
  cleanly with no default grid.
- update tune tests: explicit-grid path for all modes + error path.
@rxavier
rxavier merged commit 76d664e into main Jul 31, 2026
13 checks passed
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