GridSearch-Parameter einrichten
Ein Hyperparameter ist ein Parameter innerhalb einer Funktion. Zum Beispiel sind max_depth oder min_samples_leaf Hyperparameter der Funktion DecisionTreeClassifier(). Hyperparameter-Tuning ist der Prozess, verschiedene Werte von Hyperparametern zu testen, um die optimalen zu finden: diejenigen, die gemessen an deinen Zielen die besten Vorhersagen liefern. In sklearn kannst du mit GridSearch verschiedene Kombinationen von Hyperparametern testen. Noch besser: Mit GridSearchCV() kannst du unterschiedliche Kombinationen testen und zugleich Cross-Validation darauf ausführen – alles in einer Funktion!
In dieser Übung bereitest du die verschiedenen Werte vor, die du für max_depth und min_samples_leaf testen willst. Anschließend packst du sie in ein Dictionary, denn das wird für GridSearchCV() benötigt:
- Die Dictionary-Schlüssel sind die Namen der Hyperparameter
- Die Dictionary-Werte sind die Ausprägungen (die Hyperparameterwerte), die du testen willst
Anstatt alle Werte manuell zu schreiben, verwendest du die Funktion range(), mit der wir Werte schrittweise generieren können. Zum Beispiel erzeugt range(1, 10, 2) eine Liste mit Werten von 1 (einschließlich) bis 10 (nicht einschließlich) in Zweierschritten. Das Endergebnis ist also [1, 3, 5, 7, 9].
Diese Übung ist Teil des Kurses
HR Analytics: Mitarbeiterfluktuation mit Python vorhersagen
Anleitung zur Übung
- Erzeuge nach dem obigen Beispiel Werte für die maximale Tiefe von 5 bis 20 in Einerschritten
- Mach dasselbe für die minimale Blattgröße mit Werten von 50 bis 450 in Schritten von 50
- Erstelle das Dictionary, indem du die zu testenden Werte für
max_depthundmin_samples_leafmit den soeben erzeugten Variablen angibst
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]
# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]
# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)