Cómo funciona la regresión logística

Regresión intermedia con statsmodels en Python

Maarten Van den Broeck

Content Developer at DataCamp

La suma de cuadrados no funciona

np.sum((y_pred - y_actual) ** 2)

y_actual siempre es 0 o 1.

y_pred está entre 0 y 1.

Hay una métrica mejor que la suma de cuadrados.

Regresión intermedia con statsmodels en Python

Verosimilitud

       y_pred * y_actual
Regresión intermedia con statsmodels en Python

Verosimilitud

       y_pred * y_actual + (1 - y_pred) * (1 - y_actual)
Regresión intermedia con statsmodels en Python

Verosimilitud

np.sum(y_pred * y_actual + (1 - y_pred) * (1 - y_actual))

Cuando y_actual = 1

y_pred * 1 + (1 - y_pred) * (1 - 1) = y_pred

Cuando y_actual = 0

y_pred * 0 + (1 - y_pred) * (1 - 0) = 1 - y_pred
Regresión intermedia con statsmodels en Python

Log-verosimilitud

  • Calcular la verosimilitud suma muchos números muy pequeños y causa error numérico.
  • La log-verosimilitud es más fácil de calcular.
log_likelihood = np.log(y_pred) * y_actual + np.log(1 - y_pred) * (1 - y_actual)

Ambas ecuaciones dan el mismo resultado.

Regresión intermedia con statsmodels en Python

Log-verosimilitud negativa

Maximizar la log-verosimilitud equivale a minimizar la log-verosimilitud negativa.

-np.sum(log_likelihoods)
Regresión intermedia con statsmodels en Python

Algoritmo de regresión logística

def calc_neg_log_likelihood(coeffs)

intercept, slope = coeffs
# More calculation!
from scipy.optimize import minimize

minimize(
  fun=calc_neg_log_likelihood,
  x0=[0, 0]
)
Regresión intermedia con statsmodels en Python

¡Vamos a practicar!

Regresión intermedia con statsmodels en Python

Preparing Video For Download...