scikit-learn / scikit-learn/scikit-learn
quantile regression with dynamic or multiple quantiles
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 67.3k
- Forks
- 27.4k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 58
Description
Is anyone thinking of extending GBR to include multiple quantiles (and the monotonicity constraint)?
It is nice to see Quantile Regression is making it's way in sklearn for example here
We can also do quantile regression as a function approximator f(tau, X) where X is the feature context and tau is a specific probability requested (and input into the particular loss function).
The factor that complicates this is that one really needs to bake monotonicity into the approximator $f$. This can be done in a few simple ways or more generally but is probably approximator dependent.
A simplest first discussion point might be in extending the GBR to take a fixed grid of quantiles as I suspect this would simply add a loop to the loss and the regressor could be constrained to be positive outputs that are then cumulative summed to get a monotic structure in $\tau$.
I have not described this cleary but hope someone might get the gist of this and can point me in the right direction or discuss further.
Noting this maybe should go with https://github.com/scikit-learn/scikit-learn/issues/18997
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the GradientBoostingRegressor documentation linked in the issue and review the related issue #18997. Clarify whether the goal is fixed-grid or dynamic quantiles and how monotonicity should be enforced; the work is done when the scope and expected behavior are agreed sufficiently for implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100