Blue-Yonder-OSS / cyclic-boosting

implementation of Cyclic Boosting machine learning algorithms
Eclipse Public License 2.0
86 stars 15 forks source link

Add cyclic boosting to Darts library #31

Open rijkvandermeulen opened 1 year ago

rijkvandermeulen commented 1 year ago

Hey guys,

I was wondering whether it would be an idea to add the CyclicBoosting algorithm to Darts ? Darts is a great library for time series forecasting that is used a lot. Would be great to have your algorithm available there as well. Would also be some nice exposure and wider adoption of CyclicBoosting

I've contributed to Darts in the past and expect they will be open to add it considering its added value.

FelixWick commented 1 year ago

That would be awesome. I’m definitely all for it. Can you ask them?

rijkvandermeulen commented 1 year ago

That would be awesome. I’m definitely all for it. Can you ask them?

Good to hear :). I've created a ticket which went through their triage process and has now been included in the backlog. You can find the link to it here (https://github.com/unit8co/darts/issues/1764).

FelixWick commented 10 months ago

Any progress on this, @lbventura ?

lbventura commented 10 months ago

Unfortunately no. I will spend some time on it this upcoming but I only expect to be finished with it over the holiday season, since I have vacations then.

lbventura commented 10 months ago

Minor progress on getting CBPoissonRegressor to work inside darts (e.g, can be imported, can be fitted with toy X and y and can generate predictions). The next steps are to make sure that:

One open question @FelixWick is whether CBPoissonRegressor or pipeline_CBPoissonRegressor should be used in darts. IMO, using the regressors directly would be cleaner/simpler, but at the level of the tests in cyclic-boosting we hardly use the regressors themselves. Any preference?

FelixWick commented 10 months ago

We have to use binning along with the regressors anyway. So, using regressors directly just means writing the pipeline of binning and regressors explicitly. While this, at least in principle, gives a little more flexibility in terms of usage of different binnings (What will be hardly used in practice, I guess.), it is also slightly more complicated to understand (Although that is not necessarily a bad thing 😄.). So, I have no strong opinion. If I would implement it, I would probably go with the pipelines to hide the inner workings of Cyclic Boosting at the level of Darts.

lbventura commented 10 months ago

That is a good point. Then I will use the pipelines themselves (while explaining that BinNumberTransformer is implicitly being used).