import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler as skStandardScaler
class StandardScaler():
def fit(self, X):
self.mean_ = np.mean(X, axis=0)
self.scale_ = np.std(X, axis=0)
return self
def transform(self, X):
return (X - self.mean_) / self.scale_
X, _ = load_iris(return_X_y=True)
sc1 = StandardScaler().fit(X)
sc2 = skStandardScaler().fit(X)
assert np.allclose(sc1.mean_, sc2.mean_)
assert np.allclose(sc1.scale_, sc2.scale_)
Xt1 = sc1.transform(X)
Xt2 = sc2.transform(X)
assert np.allclose(Xt1, Xt2)