ComeçarComece de graça

Identificar o coeficiente ótimo de penalidade L1

Agora você vai ajustar o parâmetro C para a regularização L1 para encontrar aquele que reduz a complexidade do modelo enquanto mantém boas métricas de desempenho. Você vai executar um loop for pelos possíveis valores de C e criar instâncias de regressão logística para cada um, além de calcular as métricas de desempenho.

Uma lista C foi criada com os valores possíveis. A matriz l1_metrics foi construída com 3 colunas: a primeira contém os valores de C, e as duas seguintes são espaços reservados para a contagem de coeficientes não nulos e para a métrica de recall do modelo. As variáveis de recursos escalonados e alvo foram carregadas como train_X, train_Y para treinamento, e test_X, test_Y para teste.

Tanto numpy quanto pandas estão carregados como np e pd, assim como a função recall_score de sklearn.

Este exercício faz parte do curso

Machine Learning para Marketing em Python

Ver curso

Instruções do exercício

  • Execute um loop for no intervalo de 0 até o tamanho da lista C.
  • Para cada candidato C, inicialize e ajuste uma Regressão Logística e preveja churn nos dados de teste.
  • Para cada candidato C, armazene os coeficientes não nulos e o recall na segunda e terceira colunas de l1_metrics.
  • Crie um DataFrame do pandas a partir de l1_metrics com os nomes de colunas apropriados.

Exercício interativo prático

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

# Run a for loop over the range of C list length
for index in ___(0, len(C)):
  # Initialize and fit Logistic Regression with the C candidate
  logreg = ___(penalty='l1', C=C[___], solver='liblinear')
  logreg.fit(___, train_Y)
  # Predict churn on the testing data
  pred_test_Y = logreg.___(test_X)
  # Create non-zero count and recall score columns
  l1_metrics[index,1] = np.___(logreg.coef_)
  l1_metrics[index,2] = recall_score(___, pred_test_Y)

# Name the columns and print the array as pandas DataFrame
col_names = ['C','Non-Zero Coeffs','Recall']
print(pd.DataFrame(l1_metrics, columns=___))
Editar e executar o código