online-ml / river

🌊 Online machine learning in Python
https://riverml.xyz
BSD 3-Clause "New" or "Revised" License
4.89k stars 538 forks source link

Single-pass Self Parameter Tuning #1553

Open smastelini opened 1 month ago

smastelini commented 1 month ago

This has been in the works for quite a long time, actually.

SSPT works by self-tuning the hyperparameters of models while keeping their parameters intact. For example, we might change some hyperparameters of linear models while keeping the weights learned so far intact. This is different from instantiating a new model from scratch with a set of candidate hyperparameter values.

@BrunoMVeloso is one of the authors and he is going to help me with the final touches.

The main things to do:

About the last item, the way SSPT is structured right now makes it inherit directly from base.Estimator. The good part is that you can use it to work with classifiers, regressors, clustering algorithms, and anomaly detectors (there is no need for a SSPTClassifier and so on, for example). The downside is that SSPT currently does not work withevaluate.progressive_val_score` and friends because the evaluators check internally whether the estimator is a classifier, regressor, and whatnot.