LoslegenKostenlos loslegen

Regularisierte logistische Regression

In Kapitel 1 hast du die logistische Regression auf den Datensatz der handgeschriebenen Ziffern angewendet. Hier untersuchen wir den Effekt der L2-Regularisierung.

Der Datensatz der handgeschriebenen Ziffern ist bereits geladen, aufgeteilt und in den Variablen X_train, y_train, X_valid und y_valid gespeichert. Die Variablen train_errs und valid_errs sind bereits als leere Listen initialisiert.

Diese Übung ist Teil des Kurses

Lineare Klassifikatoren in Python

Kurs anzeigen

Anleitung zur Übung

  • Iteriere über die verschiedenen Werte von C_value und erstelle sowie fitte jedes Mal ein LogisticRegression-Modell.
  • Speichere für jedes Modell den Fehler auf dem Trainings- und dem Validierungsdatensatz.
  • Erstelle ein Diagramm des Trainings- und Testfehlers in Abhängigkeit vom Regularisierungsparameter C.
  • Blick auf das Diagramm: Welcher Wert von C ist am besten?

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()
Code bearbeiten und ausführen