Regresie logistică regularizată
În Capitolul 1, ai folosit regresia logistică pe setul de date cu cifre scrise de mână. Aici vom explora efectul regularizării L2.
Setul de date cu cifre scrise de mână este deja încărcat, împărțit și stocat în variabilele X_train, y_train, X_valid și y_valid. Variabilele train_errs și valid_errs sunt deja inițializate ca liste goale.
Acest exercițiu face parte din cursul
Clasificatori liniari în Python
Instrucțiuni pentru exercițiu
- Parcurge în buclă diferitele valori ale
C_value, creând și antrenând de fiecare dată un modelLogisticRegression. - Salvează eroarea pe setul de antrenament și pe setul de validare pentru fiecare model.
- Creează un grafic al erorii de antrenament și de testare în funcție de parametrul de regularizare
C. - Uitându-te la grafic, care este cea mai bună valoare a lui
C?
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()