For my client I have to predict some products' prices with gbm (scikit). So in the production, I am to give prediction intervals. That is, I need to provide how likely a real price falls above 110% or falls below 90% of the corresponding prediction (i.e. if prediction is 100$ then what is the probability that the real price falls >= 110 or <= 90 or within 90-110). And the decision will be to trust the model if the likelihood of being in the 90%-110% interval is >=90%.
I am bit confused from what I read and would like to learn some important points.
Would I be able to get what I want with https://scikit-learn.org/stable/auto_examples/ensemble/plot_gradient_boosting_quantile.html? i.e. with setting alpha to 0.90 for example, I score a new point with upper & lower fit and if my prediction * 110% (and 90%) cover these 2 thresholds, then I would interpret that there is at least 90% likelihood that real value will be between pred90% - pred110? Could I get separate probabilities i.e. prob of below pred90% and prob of pred110%?
How can I do this with bootstrap (again for only gbm model)? I see that I can get prediction intervals as shown here https://saattrupdan.github.io/2020-03-01-bootstrap-prediction/. However, I am confused with how I do what I want with a totally new observation in production.
what are the other ways to achieve this (get all 3 probabilities)?
Any guidance would be appreciated so much!