simon-hirsch / rolch

A package for online learning for distributional regression and online models for conditional heteroskedasiticity
https://simon-hirsch.github.io/rolch/
MIT License
9 stars 2 forks source link

integration/listing with `skpro` and `sktime`? #1

Open fkiraly opened 4 months ago

fkiraly commented 4 months ago

Nice package, I have been looking for methods for heteroskedastic distribution prediction! (see https://github.com/sktime/skpro/issues/7)

More generally, I think rolch would fit the scope of skpro as a model for conditional distribution prediction: https://github.com/sktime/skpro

In the sktime / skpro ecosystem:

There are two models to add integration with rolch, both assuming rolch exists as a separate, continuously maintained package under independent ownership:

More details in the developer guide for estimator integration: https://www.sktime.net/en/latest/developer_guide/add_estimators.html

Happy to help integrate!

What I am also very excited about is the on-line learning interface for distributional prediction! This does not exist as a systematic interface point in skpro yet, but we could add this together and make rolch the first such example!

I think this would be especially useful towards the existing sktime integration with skpro, where currently in reduction the tabular regression models are refit entirely instead of making use of efficient updating, so rolch could become a favourite component fore efficient stream update forecasting in sktime composites!

fkiraly commented 4 months ago

PS: let us know if you would like to present rolch at one of the sktime meetups! Fridays at 13 UTC on discord, mixed international audience, slots available from August.

simon-hirsch commented 4 months ago

Hi @fkiraly,

thanks for the kind feedback! Generally, integration with skpro and sktime sounds like a good idea and we'd be quite happy to create first online predictor in the skpro framework.

We have a few rough edges to sort out in our package though, starting up with basics like docstrings and a documentation, but also we have not yet thought about how to handle e.g. auto-regressive effects in rolch, as you could e.g. have autoregressive effects for all conditional distribution parameters, but also have cross-parameter dependencies (e.g. having $\sigma$ dependent on $\mu$ (or rather $\hat{\mu}$), which is quite a plausible one for many applications). Currently, only have autoregressive effects in $\mu$ by adding lagged values to $X$.

I would see the integration nevertheless as a goal for the first stable version :+1: It will be good to have it in the back of our minds while smoothing the rough edges. I'll read through the docs and write down some more notes in this issue the next week(s).

fkiraly commented 2 months ago

Review of the framework PR for online proba regressors would be appreciated!

https://github.com/sktime/skpro/pull/462

fkiraly commented 1 month ago

FYI @simon-hirsch, skpro 2.7.0 with the update API is released, so integration should be extra easy now. check_estimator will check the validity of the update interface.

I think the current, improved rolch API is basically identical with the skpro API, except that you need to switch predict to return the predictive mean, and predict_proba to return an skpro distribution. Implementing predict_proba will work best with a dictionary approach, that maps supported rolch distributions onto skpro distributions.