Aplicación de la regresión logística
Este ejercicio es muy similar al anterior, en el que implementó la regresión lineal "desde cero" utilizando scipy.optimize.minimize
. Sin embargo, esta vez minimizaremos la pérdida logística y compararemos con LogisticRegression
de scikit-learn (hemos establecido C
a un valor grande para desactivar la regularización; ¡más sobre esto en el Capítulo 3!).
La función log_loss()
del ejercicio anterior ya está definida en su entorno, y el conjunto de datos de predicción del cáncer de mama sklearn
(10 primeras características, estandarizadas) se carga en las variables X
y y
.
Este ejercicio forma parte del curso
Clasificadores lineales en Python
Instrucciones de ejercicio
- Introduzca el número de ejemplos de entrenamiento en
range()
. - Rellene la función de pérdida para la regresión logística.
- Compare los coeficientes con los de sklearn
LogisticRegression
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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_)