Search code examples
pythonmachine-learningscikit-learnnormalizationstandardized

Undo L2 Normalization in sklearn python


Once I normalized my data with an sklearn l2 normalizer and use it as training data: How do I turn the predicted output back to the "raw" shape?

In my example I used normalized housing prices as y and normalized living space as x. Each used to fit their own X_ and Y_Normalizer.

The y_predict is in therefore also in the normalized shape, how do I turn in into the original raw currency state?

Thank you.


Solution

  • If you are talking about sklearn.preprocessing.Normalizer, which normalizes matrix lines, unfortunately there is no way to go back to original norms unless you store them by hand somewhere.

    If you are using sklearn.preprocessing.StandardScaler, which normalizes columns, then you can obtain the values you need to go back in the attributes of that scaler (mean_ if with_mean is set to True and std_)

    If you use the normalizer in a pipeline, you wouldn't need to worry about this, because you wouldn't modify your data in place:

    from sklearn.pipeline import make_pipeline
    from sklearn.preprocessing import Normalizer
    
    # classifier example
    from sklearn.svm import SVC
    
    pipeline = make_pipeline(Normalizer(), SVC())