Aan de slagGa gratis aan de slag

Geregulariseerde logistic regression

In hoofdstuk 1 heb je logistic regression gebruikt op de dataset met handgeschreven cijfers. Hier onderzoeken we het effect van L2-regularisatie.

De dataset met handgeschreven cijfers is al geladen, gesplitst en opgeslagen in de variabelen X_train, y_train, X_valid en y_valid. De variabelen train_errs en valid_errs zijn al geïnitialiseerd als lege lijsten.

Deze oefening maakt deel uit van de cursus

Lineaire classificatoren in Python

Cursus bekijken

Oefeninstructies

  • Loop over de verschillende waarden van C_value en maak en fit telkens een LogisticRegression-model.
  • Sla voor elk model de fout op de trainingsset en de validatieset op.
  • Maak een plot van de trainings- en testfout als functie van de regularisatieparameter C.
  • Als je naar de plot kijkt, wat is dan de beste waarde voor C?

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren