Proč potřebujete logistickou regresi

Úvod do regrese s knihovnou statsmodels v Pythonu

Maarten Van den Broeck

Content Developer at DataCamp

Dataset odchodu zákazníků banky

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
... ... ...
response délka vztahu recency aktivity
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Úvod do regrese s knihovnou statsmodels v Pythonu

Odchod vs. recency: lineární model

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
Úvod do regrese s knihovnou statsmodels v Pythonu

Vizualizace lineárního modelu

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

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

Bodový graf znázorňující odchod nebo setrvání zákazníka v závislosti na době od posledního nákupu. Všechny body leží na přímce y = 0 nebo y = 1. Lineární trendová čára ukazuje rostoucí pravděpodobnost odchodu s rostoucí dobou od posledního nákupu.

Úvod do regrese s knihovnou statsmodels v Pythonu

Oddálení pohledu

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()

Bodový graf znázorňující odchod nebo setrvání zákazníka v závislosti na době od posledního nákupu. Osy jsou oddáleny oproti předchozímu zobrazení a ukazují, že trendová čára klesá pod y = 0 a stoupá nad y = 1, což by být nemělo.

Úvod do regrese s knihovnou statsmodels v Pythonu

Co je logistická regrese?

  • Další typ zobecněného lineárního modelu.
  • Používá se, když je vysvětlovaná proměnná logická.
  • Odezvy sledují logistickou (esovitou) křivku.
Úvod do regrese s knihovnou statsmodels v Pythonu

Logistická regrese pomocí 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
Úvod do regrese s knihovnou statsmodels v Pythonu

Vizualizace logistického modelu

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()

Bodový graf znázorňující odchod nebo setrvání zákazníka v závislosti na době od posledního nákupu. Jsou zobrazeny lineární a logistická trendová čára, obě ukazují rostoucí pravděpodobnost odchodu s rostoucí dobou od posledního nákupu. Obě čáry se navzájem velmi blízko sledují, s výjimkou vysokých hodnot doby od posledního nákupu.

Úvod do regrese s knihovnou statsmodels v Pythonu

Oddálení pohledu

Bodový graf znázorňující odchod nebo setrvání zákazníka v závislosti na době od posledního nákupu s oběma trendovými čarami. Osy jsou oddáleny oproti předchozímu zobrazení a ukazují, že logistická trendová čára nikdy nepřekračuje rozsah pravděpodobnosti odchodu od nuly do jedné.

Úvod do regrese s knihovnou statsmodels v Pythonu

Pojďme si procvičit!

Úvod do regrese s knihovnou statsmodels v Pythonu

Preparing Video For Download...