When I was reading about using StandardScaler
, most of the recommendations were saying that you should use StandardScaler
before splitting the data into train/test, but when i was checking some of the codes posted online (using sklearn) there were two major uses.
Case 1: Using StandardScaler
on all the data. E.g.
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_fit = sc.fit(X)
X_std = X_fit.transform(X)
Or
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X = sc.fit(X)
X = sc.transform(X)
Or simply
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_std = sc.fit_transform(X)
Case 2: Using StandardScaler
on split data.
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform (X_test)
I would like to standardize my data, but I am confused which approach is the best!