Hyperparameter

Hyperparameter sind Parameter, die die Struktur eines Lernmodells beeinflussen und nicht vom Lernalgorithmus während des Trainings angepasst werden, sondern vor dem Training festgelegt werden müssen.

Beispiele für Hyperparameter in verschiedenen Modellen

  • Neuronale Netze:
    • Anzahl der Schichten
    • Anzahl der Neuronen pro Schicht
    • Lernrate
    • Aktivierungsfunktion
  • Support Vector Machines (SVMs):
    • Kernel-Typ (z. B. linear, polynomial, RBF)
    • Regularisierungsparameter C
    • Kernel-spezifische Parameter (z. B. Grad des Polynoms, Gamma für RBF-Kernel)
  • Entscheidungsbäume:
    • Maximale Tiefe des Baumes
    • Minimale Anzahl von Datenpunkten pro Blattknoten

Auswahl der besten Hyperparameter

Die Wahl der optimalen Hyperparameter ist entscheidend für die Leistung eines Modells. Ein gängiger Ansatz ist die systematische Suche nach den besten Hyperparametern.

Grid Search zur Findung der otimpalen Parameterkombination.

  • Manuelle Suche: Verschiedene Kombinationen von Hyperparametern werden manuell ausprobiert.
  • Automatisierte Suche: Mit GridSearchCV können verschiedene Hyperparameterkombinationen systematisch getestet werden.
  • Bewertung der Leistung: Die Leistung des Modells wird für jede Hyperparameterkombination mit einer Metrik (z. B. Genauigkeit) bewertet.
  • Auswahl der besten Kombination: Die Hyperparameterkombination, die die beste Leistung erzielt, wird ausgewählt.

Beispiel in Python

from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
 
# Parameter Grid erweitern, um zusätzliche Hyperparameter zu testen
param_grid = {
    'n_estimators': [447],
    'max_depth': [None],
    'criterion': ["gini"],
    'max_features': ["sqrt"],
    "min_samples_leaf": [1],
}
 
grid_search = GridSearchCV(estimator=RandomForestClassifier(),
                           param_grid=param_grid, cv=5, n_jobs=-1) 
 
grid_search.fit(X_train.reshape(-1, 784), y_train)