Hoe logistische regressie werkt

Gemiddelde regressie met statsmodels in Python

Maarten Van den Broeck

Content Developer at DataCamp

Som van kwadraten werkt niet

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

y_actual is altijd 0 of 1.

y_pred ligt tussen 0 en 1.

Er is een betere maatstaf dan de som van kwadraten.

Gemiddelde regressie met statsmodels in Python

Likelihood

       y_pred * y_actual
Gemiddelde regressie met statsmodels in Python

Likelihood

       y_pred * y_actual + (1 - y_pred) * (1 - y_actual)
Gemiddelde regressie met statsmodels in Python

Likelihood

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

Als y_actual = 1

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

Als y_actual = 0

y_pred * 0 + (1 - y_pred) * (1 - 0) = 1 - y_pred
Gemiddelde regressie met statsmodels in Python

Log-likelihood

  • Likelihood berekenen telt veel heel kleine getallen op, wat numerieke fouten kan geven.
  • Log-likelihood is makkelijker te berekenen.
log_likelihood = np.log(y_pred) * y_actual + np.log(1 - y_pred) * (1 - y_actual)

Beide formules geven hetzelfde resultaat.

Gemiddelde regressie met statsmodels in Python

Negatieve log-likelihood

Het maximaliseren van de log-likelihood is gelijk aan het minimaliseren van de negatieve log-likelihood.

-np.sum(log_likelihoods)
Gemiddelde regressie met statsmodels in Python

Algoritme voor logistische regressie

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]
)
Gemiddelde regressie met statsmodels in Python

Laten we oefenen!

Gemiddelde regressie met statsmodels in Python

Preparing Video For Download...