Normalisation method, that does not shift the distribution and is therefore good for sparse data.
Math
Obviously sensitive to outliers.
Implementation
from sklearn.preprocessing import MaxAbsScaler
scaler = MaxAbsScaler()
X_train_scaled = scaler.fit_transform(X_train)
# To avoid bleeding from test set:
X_non_train_scaled = scaler.transform(X_non_train)