Budowanie krzywych uczenia
Kiedy chcemy przetestować wiele różnych wartości jednego hiperparametru, trudno jest je wygodnie przeanalizować w formie ramki danych. Wcześniej poznałeś(-aś) pewną przydatną technikę. Wykres zwany krzywą uczenia pozwala w przejrzysty sposób zilustrować, jak zwiększanie lub zmniejszanie danego hiperparametru wpływa na końcowy wynik.
Zamiast testować tylko kilka wartości współczynnika uczenia, sprawdzisz ich wiele, aby łatwo zobaczyć wpływ tego hiperparametru na szerokim zakresie wartości. Przydatna funkcja z biblioteki NumPy to np.linspace(start, end, num) – pozwala ona wygenerować określoną liczbę wartości (num) równomiernie rozmieszczonych w zadanym przedziale (start, end).
Do dyspozycji masz zbiory danych: X_train, X_test, y_train i y_test.
To ćwiczenie jest częścią kursu
Strojenie hiperparametrów w Pythonie
Instrukcje do ćwiczenia
- Utwórz listę 30 wartości współczynnika uczenia równomiernie rozłożonych w przedziale od 0,01 do 2.
- Napisz pętlę podobną do tej z poprzedniego ćwiczenia, ale tym razem zapisuj tylko wartości dokładności do listy.
- Narysuj wykres zależności dokładności od wartości współczynnika uczenia.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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.____