I am currently working on a regression problem to predict customer revenue in the next 3 or 6 months etc.
So, am currently using different regression approaches. However, I see that the predicted y values are negative (for monetary value). but monetary value cannot be negative.
But my R2 value is 90% in train and 82% in test set. However, when I find out the minimum value in predicted Y values, they are negative. My RMSE is around 60K in train and 65K in test. The actual values for revenue range from 9.8 to 6980753
So, do you think it is appropriate to introduce a rule (on top of my ML output) to say convert/replace all predicted negative monetary values to zero.
Something like below in python
np.where(y_pred<0,0,y_pred)
Would this indicate I am messing up with the model result and it is not ethical to do this? Because negative values don't make sense anyway. At least replacing them with zeroes would improve the performance metrics like RMSE or R2. I don't intend to do this but would like to know what is appropriate and right thing to do