Data Standardization vs Normalization vs Robust Scaler Data Standardization vs Normalization vs Robust Scaler python python

Data Standardization vs Normalization vs Robust Scaler


Am I right to say that also Standardization gets affected negatively by the extreme values as well?

Indeed you are; the scikit-learn docs themselves clearly warn for such a case:

However, when data contains outliers, StandardScaler can often be mislead. In such cases, it is better to use a scaler that is robust against outliers.

More or less, the same holds true for the MinMaxScaler as well.

I really can't see how the Robust Scaler improved the data because I still have extreme values in the resulted data set? Any simple -complete interpretation?

Robust does not mean immune, or invulnerable, and the purpose of scaling is not to "remove" outliers and extreme values - this is a separate task with its own methodologies; this is again clearly mentioned in the relevant scikit-learn docs:

RobustScaler

[...] Note that the outliers themselves are still present in the transformed data. If a separate outlier clipping is desirable, a non-linear transformation is required (see below).

where the "see below" refers to the QuantileTransformer and quantile_transform.


None of them are robust in the sense that the scaling will take care of outliers and put them on a confined scale, that is no extreme values will appear.

You can consider options like:

  • Clipping(say, between 5 percentile and 95 percentile) the series/array before scaling
  • Taking transformations like square-root or logarithms, if clipping is not ideal
  • Obviously, adding another column 'is clipped'/'logarithmic clipped amount' will reduce information loss.