Cách hoạt động của hồi quy logistic

Hồi quy trung cấp với statsmodels trong Python

Maarten Van den Broeck

Content Developer at DataCamp

Tổng bình phương không phù hợp

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

y_actual luôn là 0 hoặc 1.

y_pred nằm giữa 01.

Có một thước đo tốt hơn tổng bình phương.

Hồi quy trung cấp với statsmodels trong Python

Likelihood

       y_pred * y_actual
Hồi quy trung cấp với statsmodels trong Python

Likelihood

       y_pred * y_actual + (1 - y_pred) * (1 - y_actual)
Hồi quy trung cấp với statsmodels trong Python

Likelihood

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

Khi y_actual = 1

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

Khi y_actual = 0

y_pred * 0 + (1 - y_pred) * (1 - 0) = 1 - y_pred
Hồi quy trung cấp với statsmodels trong Python

Log-likelihood

  • Tính likelihood phải cộng nhiều số rất nhỏ, dễ gây lỗi số học.
  • Log-likelihood dễ tính hơn.
log_likelihood = np.log(y_pred) * y_actual + np.log(1 - y_pred) * (1 - y_actual)

Hai công thức cho cùng kết quả.

Hồi quy trung cấp với statsmodels trong Python

Negative log-likelihood

Cực đại hóa log-likelihood tương đương với cực tiểu hóa negative log-likelihood.

-np.sum(log_likelihoods)
Hồi quy trung cấp với statsmodels trong Python

Thuật toán hồi quy logistic

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]
)
Hồi quy trung cấp với statsmodels trong Python

Ayo berlatih!

Hồi quy trung cấp với statsmodels trong Python

Preparing Video For Download...