I was reading the docs for MaxAbsScaler.
https://scikit-learn.org/stable/modules/preprocessing.html#scaling-features-to-a-range
I can't understand what exactly it does.
Here is an example:
>>> X_train = np.array([[ 1., -1., 2.],
... [ 2., 0., 0.],
... [ 0., 1., -1.]])
...
>>> max_abs_scaler = preprocessing.MaxAbsScaler()
>>> X_train_maxabs = max_abs_scaler.fit_transform(X_train)
>>> X_train_maxabs # doctest +NORMALIZE_WHITESPACE^
array([[ 0.5, -1. , 1. ],
[ 1. , 0. , 0. ],
[ 0. , 1. , -0.5]])
>>> X_test = np.array([[ -3., -1., 4.]])
>>> X_test_maxabs = max_abs_scaler.transform(X_test)
>>> X_test_maxabs
array([[-1.5, -1. , 2. ]])
>>> max_abs_scaler.scale_
array([2., 1., 2.])
It says that it scales in a way that the training data lies within the range [-1, 1] by dividing through the largest maximum value in each feature.
I think it works per column when it says in each feature.
A simpler explanation would be great.