Quando eu estava lendo sobre o uso StandardScaler
, a maioria das recomendações dizia que você deveria usar StandardScaler
antes de dividir os dados em treinamento / teste, mas quando eu estava verificando alguns dos códigos publicados on-line (usando o sklearn), havia dois usos principais.
1- Usando StandardScaler
em todos os dados. Por exemplo
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_fit = sc.fit(X)
X_std = X_fit.transform(X)
Ou
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X = sc.fit(X)
X = sc.transform(X)
Ou simplesmente
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_std = sc.fit_transform(X)
2- Usando StandardScaler
em dados divididos.
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform (X_test)
Gostaria de padronizar meus dados, mas estou confuso sobre qual método é o melhor!
fonte
Que tal o seguinte:
Porque se
X_test = sc.transform(X_test)
, retorna erroX_test
ainda não está ajustado. Ou eu perdi alguma coisa aqui?fonte
Você não deve fazer o fit_transform (X_test) nos dados do teste.
O ajuste já ocorreu acima.
fonte