Kiedy czytałem o używaniu StandardScaler
, większość zaleceń mówiła, że powinieneś użyć StandardScaler
przed podzieleniem danych na pociąg / test, ale kiedy sprawdzałem niektóre kody opublikowane online (za pomocą sklearn), były dwa główne zastosowania.
1- Korzystanie StandardScaler
ze wszystkich danych. Na przykład
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_fit = sc.fit(X)
X_std = X_fit.transform(X)
Lub
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X = sc.fit(X)
X = sc.transform(X)
Lub po prostu
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_std = sc.fit_transform(X)
2- Korzystanie StandardScaler
z podzielonych danych.
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform (X_test)
Chciałbym ujednolicić swoje dane, ale nie wiem, która metoda jest najlepsza!
źródło
Co powiesz na następujące:
Ponieważ jeśli
X_test = sc.transform(X_test)
zwraca błąd,X_test
nie jest jeszcze dopasowany. A może coś mi umknęło?źródło
Nie powinieneś wykonywać fit_transform (X_test) na danych testowych.
Dopasowanie nastąpiło już powyżej.
źródło