EmpezarEmpieza gratis

Implementar regresión logística

Esto es muy parecido al ejercicio anterior en el que implementaste una regresión lineal «desde cero» usando scipy.optimize.minimize. Sin embargo, esta vez minimizaremos la pérdida logística y la compararemos con LogisticRegression de scikit-learn (hemos establecido C en 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 tu entorno, y el conjunto de datos de predicción de cáncer de mama de sklearn (primeras 10 características, estandarizadas) está cargado en las variables X e y.

Este ejercicio forma parte del curso

Clasificadores lineales en Python

Ver curso

Instrucciones del ejercicio

  • Introduce el número de ejemplos de entrenamiento en range().
  • Completa la función de pérdida para la regresión logística.
  • Compara los coeficientes con LogisticRegression de sklearn.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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 y ejecutar código