Como funciona a regressão logística

Regressão Intermediária com statsmodels em Python

Maarten Van den Broeck

Content Developer at DataCamp

Soma dos quadrados não funciona

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

y_actual é sempre 0 ou 1.

y_pred fica entre 0 e 1.

Há uma métrica melhor que a soma dos quadrados.

Regressão Intermediária com statsmodels em Python

Verossimilhança

       y_pred * y_actual
Regressão Intermediária com statsmodels em Python

Verossimilhança

       y_pred * y_actual + (1 - y_pred) * (1 - y_actual)
Regressão Intermediária com statsmodels em Python

Verossimilhança

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

Quando y_actual = 1

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

Quando y_actual = 0

y_pred * 0 + (1 - y_pred) * (1 - 0) = 1 - y_pred
Regressão Intermediária com statsmodels em Python

Log-verossimilhança

  • Calcular a verossimilhança soma muitos números muito pequenos, gerando erro numérico.
  • A log-verossimilhança é mais fácil de calcular.
log_likelihood = np.log(y_pred) * y_actual + np.log(1 - y_pred) * (1 - y_actual)

As duas equações dão o mesmo resultado.

Regressão Intermediária com statsmodels em Python

Log-verossimilhança negativa

Maximizar a log-verossimilhança é o mesmo que minimizar a log-verossimilhança negativa.

-np.sum(log_likelihoods)
Regressão Intermediária com statsmodels em Python

Algoritmo de regressão 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]
)
Regressão Intermediária com statsmodels em Python

Vamos praticar!

Regressão Intermediária com statsmodels em Python

Preparing Video For Download...