Closed fkiraly closed 3 months ago
I think that makes sense. Also, instead of importing the J-QPD implementation from Cyclic Boosting, we might consider to create an independent class directly here in the new QPD module. (I know I suggested differently before, but your description changed my mind.)
Also, instead of importing the J-QPD implementation from Cyclic Boosting, we might consider to create an independent class directly here in the new QPD module. (I know I suggested differently before, but your description changed my mind.)
I think the "optimal state" is either that, or a lightweight interface, as for instance to scipy
with Poisson
.
@felixwick, @setoguchi-naoki, @Ram0nB I think we should consolidate the three curent quantile parameterized distribution (QPD) classes into a single one, and move the distribution logic in the quantile regressor in another QPD related class.
This idea is based on two observations:
MultipleQuantileRegressor
is one way to construct a QPD with arbitrary number of input quantile predictions/values. PR showing how this could look like here: https://github.com/sktime/skpro/pull/236CyclicBoosting
, are spread across three classes which seem a bit redundant. They are also being reworked in #232, related to thecyclic_boosting 1.4.0
release.I would suggest the following end state:
the logic in
MultipleQuantileRegressor
moves into a QPD, to which we can later add different interpolation modes and basis functions.I would suggest replacing the three
QPD_X
distributions by a single class for Johnson QPD,QPD_Johnson
, or similar. This can have a parameterbounding
which can be"bounded"
,"unbounded"
,"semi"
, mapping onto the logic in the three current classes.Do you have any thoughts about this suggestion? It might simplify the interface(s) of the connected regressors as well.