Regressione logistica con regolarizzazione
Nel Capitolo 1 hai usato la regressione logistica sul dataset delle cifre scritte a mano. Qui esploreremo l'effetto della regolarizzazione L2.
Il dataset delle cifre scritte a mano è già caricato, suddiviso e memorizzato nelle variabili X_train, y_train, X_valid e y_valid. Le variabili train_errs e valid_errs sono già inizializzate come liste vuote.
Questo esercizio fa parte del corso
Classificatori lineari in Python
Istruzioni dell'esercizio
- Esegui un ciclo sui diversi valori di
C_value, creando e addestrando ogni volta un modelloLogisticRegression. - Salva l'errore sul training set e sul validation set per ciascun modello.
- Crea un grafico dell'errore di training e di test in funzione del parametro di regolarizzazione
C. - Guardando il grafico, qual è il valore migliore di
C?
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()