Regularyzowana regresja logistyczna
W rozdziale 1 stosowałeś regresję logistyczną na zbiorze danych z odręcznie pisanymi cyframi. Teraz zbadamy wpływ regularyzacji L2.
Zbiór danych z odręcznie pisanymi cyframi jest już wczytany, podzielony i zapisany w zmiennych X_train, y_train, X_valid oraz y_valid. Zmienne train_errs i valid_errs są już zainicjalizowane jako puste listy.
To ćwiczenie jest częścią kursu
Liniowe klasyfikatory w Pythonie
Instrukcje do ćwiczenia
- Przejdź pętlą przez różne wartości
C_value, tworząc i trenując za każdym razem modelLogisticRegression. - Zapisz błąd na zbiorze treningowym i walidacyjnym dla każdego modelu.
- Utwórz wykres błędu treningowego i testowego w funkcji parametru regularyzacji
C. - Patrząc na wykres, jaka jest najlepsza wartość
C?
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Train and validaton errors initialized as empty list
train_errs = list()
valid_errs = list()
# Loop over values of C_value
for C_value in [0.001, 0.01, 0.1, 1, 10, 100, 1000]:
# Create LogisticRegression object and fit
lr = ____
lr.fit(____)
# Evaluate error rates and append to lists
train_errs.append( 1.0 - lr.score(____) )
valid_errs.append( 1.0 - lr.score(____) )
# Plot results
plt.semilogx(C_values, train_errs, C_values, valid_errs)
plt.legend(("train", "validation"))
plt.show()