Vì sao cần hồi quy logistic

Giới thiệu về Hồi quy với statsmodels trong Python

Maarten Van den Broeck

Content Developer at DataCamp

Bộ dữ liệu rời bỏ ngân hàng

has_churned time_since_first_purchase time_since_last_purchase
0 0.3993247 -0.5158691
1 -0.4297957 0.6780654
0 3.7383122 0.4082544
0 0.6032289 -0.6990435
... ... ...
phản hồi độ dài quan hệ độ mới hoạt động
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Giới thiệu về Hồi quy với statsmodels trong Python

Rời bỏ vs. độ mới: mô hình tuyến tính

mdl_churn_vs_recency_lm = ols("has_churned ~ time_since_last_purchase",
                              data=churn).fit()

print(mdl_churn_vs_recency_lm.params)
Intercept                   0.490780
time_since_last_purchase    0.063783
dtype: float64
intercept, slope = mdl_churn_vs_recency_lm.params
Giới thiệu về Hồi quy với statsmodels trong Python

Trực quan hóa mô hình tuyến tính

sns.scatterplot(x="time_since_last_purchase",
                y="has_churned",
                data=churn)

plt.axline(xy1=(0, intercept), slope=slope) plt.show()

Biểu đồ phân tán giữa việc rời bỏ hay không và thời gian từ lần mua cuối. Mọi điểm nằm trên y = 0 hoặc y = 1. Đường tuyến tính cho thấy xác suất rời bỏ tăng theo thời gian từ lần mua cuối.

Giới thiệu về Hồi quy với statsmodels trong Python

Thu nhỏ khung nhìn

sns.scatterplot(x="time_since_last_purchase",
                y="has_churned",
                data=churn)

plt.axline(xy1=(0,intercept),
           slope=slope)

plt.xlim(-10, 10) plt.ylim(-0.2, 1.2)
plt.show()

Biểu đồ phân tán như trước. Trục được thu nhỏ, cho thấy đường tuyến tính đi xuống dưới 0 và lên trên 1, điều này là không thể với xác suất.

Giới thiệu về Hồi quy với statsmodels trong Python

Hồi quy logistic là gì?

  • Một dạng khác của mô hình tuyến tính tổng quát.
  • Dùng khi biến phản hồi là logic.
  • Phản hồi theo đường cong logistic (chữ S).
Giới thiệu về Hồi quy với statsmodels trong Python

Hồi quy logistic với logit()

from statsmodels.formula.api import logit
mdl_churn_vs_recency_logit = logit("has_churned ~ time_since_last_purchase",
                                   data=churn).fit()

print(mdl_churn_vs_recency_logit.params)
Intercept                  -0.035019
time_since_last_purchase    0.269215
dtype: float64
Giới thiệu về Hồi quy với statsmodels trong Python

Trực quan hóa mô hình logistic

sns.regplot(x="time_since_last_purchase",
            y="has_churned",
            data=churn,
            ci=None,
            logistic=True)
plt.axline(xy1=(0,intercept),
           slope=slope,
           color="black")

plt.show()

Biểu đồ phân tán giữa việc khách hàng rời bỏ hay không và thời gian từ lần mua cuối. Có đường xu hướng tuyến tính và logistic; cả hai đều cho thấy xác suất rời bỏ tăng khi thời gian từ lần mua cuối tăng. Hai đường gần trùng nhau trừ khi thời gian rất lớn.

Giới thiệu về Hồi quy với statsmodels trong Python

Thu nhỏ khung nhìn

Biểu đồ phân tán như trước với cả hai đường xu hướng. Trục được thu nhỏ để thấy đường logistic luôn nằm trong khoảng xác suất 0 đến 1.

Giới thiệu về Hồi quy với statsmodels trong Python

Hãy thực hành!

Giới thiệu về Hồi quy với statsmodels trong Python

Preparing Video For Download...