Lernkurven erstellen
Wenn wir viele verschiedene Werte für einen einzelnen Hyperparameter testen wollen, lässt sich das in einem DataFrame oft nicht gut darstellen. Zuvor hast du einen praktischen Trick kennengelernt, um das zu analysieren: Ein Diagramm namens „Lernkurve“ zeigt anschaulich, wie sich das Erhöhen oder Verringern eines bestimmten Hyperparameters auf das Endergebnis auswirkt.
Anstatt nur wenige Werte für die Lernrate zu testen, wirst du viele testen, um den Effekt dieses Hyperparameters über einen großen Wertebereich klar zu sehen. Eine nützliche Funktion aus NumPy ist np.linspace(start, end, num). Damit kannst du eine Anzahl von Werten (num) erzeugen, die gleichmäßig in einem von dir festgelegten Intervall (start, end) verteilt sind.
Dir stehen die Datensätze X_train, X_test, y_train und y_test zur Verfügung.
Diese Übung ist Teil des Kurses
<Kurs>Hyperparameter-Tuning in Python</Kurs>Übungsanweisungen
- Erstelle eine Liste mit 30 Lernraten, die gleichmäßig zwischen 0,01 und 2 verteilt sind.
- Erstelle eine ähnliche Schleife wie in der letzten Übung, speichere aber nur die Accuracy-Werte in einer Liste.
- Plotte die Lernraten gegen die Accuracy.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []
# Create the for loop
for learn_rate in learn_rates:
# Create the model, predictions & save the accuracies as before
model = GradientBoostingClassifier(learning_rate=____)
predictions = model.fit(____, ____).predict(____)
accuracies.append(accuracy_score(y_test, ____))
# Plot results
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____