Normalisation results in R^2 score of 0 - Lasso regression

I am running a regression analysis on a 7000 row dataset with a train/test split of 70%/30%. I am using one variable X to predict a variable Y.

• X ranges between 300 and 810 (mean 712).
• Y is an integer (number of occurrences) ranging between 0 and 20 (mean 0.2).

Without standardisation or normalising X, I receive:

Train score:  0.082
Test score:  0.077


However upon normalising (X = (X-X.min())/(X.max()-X.min())), I receive:

Train score:  0.0000
Test score:  -0.0001


Is there something incorrect about normalising for a Lasso regression? The same applies to standardising the data. Would anyone be able to advise me on the best course of action?

In your case, the original model needs a fairly small coefficient on X because its scale is so large, and so you don't receive much penalty from the lasso. After you standardize, now the model wants a larger coefficient on X, but that means the lasso penalty makes more of a contribution. That you get an $$R^2$$ of zero suggests that the lasso penalty is large enough now to push the coefficient to zero, so that the model is just a horizontal line. If you reduce the regularization strength a bit, you should be able to recover the old model (exactly maybe, with the right adjustment? If I get some spare time I'll look into this).