IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Esegui un ciclo sui diversi valori di C_value, creando e addestrando ogni volta un modello LogisticRegression.
  • 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()
Modifica ed esegui il codice