Regressão logística com regularização
No Capítulo 1, você usou regressão logística no conjunto de dados de dígitos escritos à mão. Aqui, vamos explorar o efeito da regularização L2.
O conjunto de dados de dígitos 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á foram inicializadas como listas vazias.
Este exercício faz parte do curso
Classificadores Lineares em Python
Instruções do exercício
- Faça um loop sobre os diferentes valores de
C_value, criando e ajustando um modeloLogisticRegressiona cada vez. - Salve o erro no conjunto de treino e no conjunto de validação para cada modelo.
- Crie um gráfico do erro de treino e de teste em 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 completando 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()