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 del 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
Prueba este ejercicio y completa el 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_)