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