I've seen similar questions on here, but none seem to quite apply to my use case.
I want to predict Metacritic scores bases on a number of features. Metacritic scores are bounded to a 0-100 scale, using Python's GradientBoostRegressor I do however get predictions which are outside of this bound (i.e. <0 or >100) - this is with a solid R² score of 89.
How can I prevent this behaviour? I could just bound all outputs to that scale after prediction (so something as simple as
y_pred[y_pred > 100] = 100), but that seems like cheating. And while there is an improvement in scores by doing that, it is very much negligible.
Ideally I'd like to incorporate this into the model itself as it's just such an obvious thing, although I can't seem to find how and if that is possible at all.