Implementação da regressão logística
Isso é muito semelhante ao exercício anterior, em que você implementou a regressão linear "do zero" usando o site scipy.optimize.minimize
. No entanto, desta vez, minimizaremos a perda logística e compararemos com o LogisticRegression
do scikit-learn (definimos C
como um valor grande 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 sklearn
(10 primeiros recursos, padronizados) é carregado nas variáveis X
e y
.
Este exercício faz parte do curso
Classificadores lineares em Python
Instruções de exercício
- Insira o número de exemplos de treinamento em
range()
. - Preencha a função de perda para a regressão logística.
- Compare os coeficientes com os do sklearn
LogisticRegression
.
Exercício interativo prático
Experimente este exercício preenchendo 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_)