Regressão logística regularizada

No Capítulo 1, você usou a regressão logística no conjunto de dados de dígitos escritos à mão. Aqui, exploraremos o efeito da regularização L2.

O conjunto de dados de dígitos manuscritos já está carregado, dividido e armazenado nas variáveis X_train, y_train, X_valid e y_valid. As variáveis train_errs e valid_errs já estão inicializadas como listas vazias.

Este exercício faz parte do curso

Classificadores lineares em Python

Ver Curso

Instruções de exercício

  • Faça um loop sobre os diferentes valores de C_value, criando e ajustando um modelo LogisticRegression a cada vez.
  • Salve o erro no conjunto de treinamento e no conjunto de validação para cada modelo.
  • Crie um gráfico do erro de treinamento e teste como uma função do parâmetro de regularização, C.
  • Observando o gráfico, qual é o melhor valor de C?

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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()