After having called
df['target'] = np.log(df['target'])
that is way better than before for training a model.
At this point I run the ML process and I train my model on log-scaled targets getting the following predictions (still using the log-scaled targets):
obtained by simply plotting log scaled predictions against log scaled true values, where the red line is the 'ideal' linear relationship between predictions and targets that I'm trying to achieve.
I got an R2 score of 0.40 which is not amazing but is not too bad at the moment.
The problem is, that when I try to get back to the original values by an inverse transform, i.e.
preds = np.exp(model.predict(X_test)) y_test = np.exp(y_test)
then I get the following:
and a R2 score of -0.090 obtained by running
(hence using the inverse transformed values).
What am I doing wrong?
thank you in advance,