Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENH] Consolidate quantile parameterized distributions in few classes #235

Open
fkiraly opened this issue Apr 4, 2024 · 2 comments
Open
Labels
API design API design & software architecture enhancement implementing algorithms Implementing algorithms, estimators, objects native to skpro module:probability&simulation probability distributions and simulators module:regression probabilistic regression module

Comments

@fkiraly
Copy link
Collaborator

fkiraly commented Apr 4, 2024

@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:

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 parameter bounding 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.

@fkiraly fkiraly added enhancement module:probability&simulation probability distributions and simulators module:regression probabilistic regression module implementing algorithms Implementing algorithms, estimators, objects native to skpro API design API design & software architecture labels Apr 4, 2024
@fkiraly fkiraly changed the title [ENH] Consolidate quantile parametric distributions in few classes [ENH] Consolidate quantile parameterized distributions in few classes Apr 5, 2024
@FelixWick
Copy link

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.)

@fkiraly
Copy link
Collaborator Author

fkiraly commented Apr 5, 2024

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.

fkiraly added a commit that referenced this issue Apr 18, 2024
Towards #235.

This PR adds an empirical quantile parameterized distribution
`QPD_Empirical`, inheriting from `Empirical`, but parameterized by
quantile points/predictions.

This PR also factors out the `predict_proba` logic from
`MultipleQuantileRegressor` as a parameter change between
`QPD_Empirical` and `Empirical`, and uses `QPD_Empirical` directly to
simplify the logic. This part is a pure refactor and does not change the
internal logic.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API design API design & software architecture enhancement implementing algorithms Implementing algorithms, estimators, objects native to skpro module:probability&simulation probability distributions and simulators module:regression probabilistic regression module
Projects
None yet
Development

No branches or pull requests

2 participants