CNN optimieren - Problem: StratifiedKFold basiert auf Label von Zielvariable y und akzeptiert keine one-hot Codierung
Verfasst: Freitag 30. August 2019, 18:44
Hallo,
Ich versuche verschiedene Hyperparameter einer CNN mithilfe RandomizedSearchCV zu optimieren.
Da der Datensatz unbalanciert ist, verwende ich StratifiedKFold anstatt KFold, damit auch in den
Folds die ursprüngliche Klassenverteilung beibehalten wird.
Wenn ich diesen Code verwende, erhalte ich folgende Fehlermeldung
Ich erhalte vermutlich diese Fehlermeldung, weil die Zielvariablen y zuvor
mithilfe von to_categorical zu one-hot encoded Klassenvektoren konvertiert wurden.
Wenn ich KFold anstatt StratifiedKFold verwende erhalte ich keine Fehlermeldung.
Da StratifiedKFold auf den Labeln von y basiert suche ich nach einer Lösung zu diesem
Problem.
Für jeden Tipp wäre ich sehr dankbar
Ich versuche verschiedene Hyperparameter einer CNN mithilfe RandomizedSearchCV zu optimieren.
Da der Datensatz unbalanciert ist, verwende ich StratifiedKFold anstatt KFold, damit auch in den
Folds die ursprüngliche Klassenverteilung beibehalten wird.
Code: Alles auswählen
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import RandomizedSearchCV
from keras.utils import to_categorical
from keras.wrappers.scikit_learn import KerasClassifier
seed = 7
np.random.seed(seed)
stratKFold = StratifiedKFold(n_splits=5, shuffle=True, random_state=seed)
model = KerasClassifier(build_fn=randomized_search_model, verbose=0)
randomized_Search = RandomizedSearchCV(estimator=model,
param_distributions=params, cv=stratKFold, n_jobs=-1)
results = randomized_Search.fit(X,y)Code: Alles auswählen
ValueError: Supported target types are: ('binary', 'multiclass'). Got 'multilabel-indicator' instead.mithilfe von to_categorical zu one-hot encoded Klassenvektoren konvertiert wurden.
Wenn ich KFold anstatt StratifiedKFold verwende erhalte ich keine Fehlermeldung.
Da StratifiedKFold auf den Labeln von y basiert suche ich nach einer Lösung zu diesem
Problem.
Für jeden Tipp wäre ich sehr dankbar