ComeçarComece de graça

Implementando regressão logística

Este exercício é muito parecido com o anterior, em que você implementou regressão linear “do zero” usando scipy.optimize.minimize. Porém, desta vez vamos minimizar a perda logística e comparar com o LogisticRegression do scikit-learn (definimos C como um valor alto para desativar a regularização; falaremos mais sobre isso no Capítulo 3!).

A função log_loss() do exercício anterior já está definida no seu ambiente, e o conjunto de dados de previsão de câncer de mama do sklearn (primeiras 10 features, padronizadas) está carregado nas variáveis X e y.

Este exercício faz parte do curso

Classificadores Lineares em Python

Ver curso

Instruções do exercício

  • Passe o número de exemplos de treino para range().
  • Preencha a função de perda para regressão logística.
  • Compare os coeficientes com o LogisticRegression do sklearn.

Exercício interativo prático

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

# The logistic loss, summed over training examples
def my_loss(w):
    s = 0
    for i in range(____):
        raw_model_output = w@X[i]
        s = s + ____(raw_model_output * y[i])
    return s

# Returns the w that makes my_loss(w) smallest
w_fit = minimize(my_loss, X[0]).x
print(w_fit)

# Compare with scikit-learn's LogisticRegression
lr = LogisticRegression(fit_intercept=False, C=1000000).fit(X,y)
print(lr.coef_)
Editar e executar o código