GridSearchCV: Wann StandardScaler notwendig?
Verfasst: Dienstag 7. Mai 2019, 21:45
Hallo,
ich versuche die optimalen Hyperparameter für eine SVM per GridSearch zu finden.
Der Datensätz wäre FashionMNIST.
Wenn ich einfach nur eine SVM trainiere, dann normalisiere ich die Daten zuvor wie z.B. in folgendem Code:
Wenn ich jedoch die optimalen Hyperparameter per GridsearchCV bestimmten möchte, sollte ich dann trotzdem noch den
StandardScaler verwenden, sowie im folgenden Code? Oder sollte ich diesem Fall das obige Normalisieren (x_train /255....) nicht durchführen?
Vielen Dank im voraus
ich versuche die optimalen Hyperparameter für eine SVM per GridSearch zu finden.
Der Datensätz wäre FashionMNIST.
Wenn ich einfach nur eine SVM trainiere, dann normalisiere ich die Daten zuvor wie z.B. in folgendem Code:
Code: Alles auswählen
from keras.datasets import fashion_mnist
import numpy as np
from sklearn.svm import LinearSVC
from sklearn.model_selection import GridSearchCV
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
#normalisieren der Daten
x_train = x_train/255
x_test = x_test/255
#trainieren eines Modells mithilfe Default-Parameter
svm = LinearSVC().fit(x_train.reshape(-1,784),y_train)
print(svm.score(x_test.reshape(-1,784), y_test))
print(svm.score(x_train.reshape(-1,784), y_train))
StandardScaler verwenden, sowie im folgenden Code? Oder sollte ich diesem Fall das obige Normalisieren (x_train /255....) nicht durchführen?
Code: Alles auswählen
#suchen der optimalen Hyperparameter per GridSearchCV
pipeline = Pipeline([
("scaler", StandardScaler()),
("svm", LinearSVC())])
param_grid = {"svm__C":np.arange(0.00001,100,1)}
clf = GridSearchCV(pipeline, param_grid, cv=5, return_train_score=True)
clf.fit(x_train.reshape(-1,784), y_train)
print('Beste Parameter: ', clf.best_params_)
print('Test_Score: ', clf.score(x_test.reshape(-1,784), y_test))
print('Train_Score: ', clf.score(x_train.reshape(-1,784), y_train))