import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import MaxAbsScaler as skMaxAbsScaler
class MaxAbsScaler():
def fit(self, X):
self.scale_ = np.max(np.abs(X), axis=0)
return self
def transform(self, X):
return X / self.scale_
X, _ = load_iris(return_X_y=True)
sc1 = MaxAbsScaler().fit(X)
sc2 = skMaxAbsScaler().fit(X)
assert np.allclose(sc1.scale_, sc2.scale_)
Xt1 = sc1.transform(X)
Xt2 = sc2.transform(X)
assert np.allclose(Xt1, Xt2)