Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Przejdź pętlą przez różne wartości C_value, tworząc i trenując za każdym razem model LogisticRegression.
  • 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()
Edytuj i uruchom kod