Regulariserad logistisk regression
I kapitel 1 använde du logistisk regression på datasetet med handskrivna siffror. Här undersöker vi effekten av L2-regularisering.
Datasetet med handskrivna siffror är redan inläst, uppdelat och lagrat i variablerna X_train, y_train, X_valid och y_valid. Variablerna train_errs och valid_errs är redan initierade som tomma listor.
Den här övningen är en del av kursen
Linjära klassificerare i Python
Övningsinstruktioner
- Loopa över de olika värdena för
C_valueoch skapa och träna enLogisticRegression-modell för varje värde. - Spara felet på träningsuppsättningen och valideringsuppsättningen för varje modell.
- Skapa ett diagram över tränings- och testfelet som funktion av regulariseringsparametern
C. - Vad är det bästa värdet på
Cutifrån diagrammet?
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()