Cum funcționează regresia logistică

Regresie intermediară cu statsmodels în Python

Maarten Van den Broeck

Content Developer at DataCamp

Suma pătratelor nu funcționează

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

y_actual este întotdeauna 0 sau 1.

y_pred este între 0 și 1.

Există o metrică mai bună decât suma pătratelor.

Regresie intermediară cu statsmodels în Python

Verosimilitate

       y_pred * y_actual
Regresie intermediară cu statsmodels în Python

Verosimilitate

       y_pred * y_actual + (1 - y_pred) * (1 - y_actual)
Regresie intermediară cu statsmodels în Python

Verosimilitate

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

Când y_actual = 1

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

Când y_actual = 0

y_pred * 0 + (1 - y_pred) * (1 - 0) = 1 - y_pred
Regresie intermediară cu statsmodels în Python

Log-verosimilitatea

  • Calculul verosimilității implică adunarea unor numere foarte mici, generând erori numerice.
  • Log-verosimilitatea este mai ușor de calculat.
log_likelihood = np.log(y_pred) * y_actual + np.log(1 - y_pred) * (1 - y_actual)

Ambele ecuații dau același rezultat.

Regresie intermediară cu statsmodels în Python

Log-verosimilitatea negativă

Maximizarea log-verosimilității este echivalentă cu minimizarea log-verosimilității negative.

-np.sum(log_likelihoods)
Regresie intermediară cu statsmodels în Python

Algoritmul regresiei logistice

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]
)
Regresie intermediară cu statsmodels în Python

Să exersăm!

Regresie intermediară cu statsmodels în Python

Preparing Video For Download...