Lojistik regresyon nasıl çalışır

Python ile statsmodels'da Orta Düzey Regresyon

Maarten Van den Broeck

Content Developer at DataCamp

Kareler toplamı işe yaramaz

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

y_actual her zaman 0 veya 1 olur.

y_pred 0 ile 1 arasındadır.

Kareler toplamından daha iyi bir metrik vardır.

Python ile statsmodels'da Orta Düzey Regresyon

Olasılık

       y_pred * y_actual
Python ile statsmodels'da Orta Düzey Regresyon

Olasılık

       y_pred * y_actual + (1 - y_pred) * (1 - y_actual)
Python ile statsmodels'da Orta Düzey Regresyon

Olasılık

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

y_actual = 1 iken

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

y_actual = 0 iken

y_pred * 0 + (1 - y_pred) * (1 - 0) = 1 - y_pred
Python ile statsmodels'da Orta Düzey Regresyon

Log-olabilirlik

  • Olasılığı hesaplarken çok küçük sayıları toplamak sayısal hataya yol açar.
  • Log-olabilirlik hesaplaması daha kolaydır.
log_likelihood = np.log(y_pred) * y_actual + np.log(1 - y_pred) * (1 - y_actual)

Her iki denklem de aynı sonucu verir.

Python ile statsmodels'da Orta Düzey Regresyon

Negatif log-olabilirlik

Log-olabilirliği ençoklamak, negatif log-olabilirliği enazlamakla aynıdır.

-np.sum(log_likelihoods)
Python ile statsmodels'da Orta Düzey Regresyon

Lojistik regresyon algoritması

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]
)
Python ile statsmodels'da Orta Düzey Regresyon

Hadi pratik yapalım!

Python ile statsmodels'da Orta Düzey Regresyon

Preparing Video For Download...