Wieloraka regresja logistyczna

Regresja średnio zaawansowana ze statsmodels w Pythonie

Maarten Van den Broeck

Content Developer at DataCamp

Zbiór danych – odpływ klientów banku

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
... ... ...
zmienna odpowiedzi długość relacji czas od ostatniej aktywności
1 https://www.rdocumentation.org/packages/bayesQR/topics/Churn
Regresja średnio zaawansowana ze statsmodels w Pythonie

logit()

from statsmodels.formula.api import logit

logit("response ~ explanatory", data=dataset).fit()
logit("response ~ explanatory1 + explanatory2", data=dataset).fit()
logit("response ~ explanatory1 * explanatory2", data=dataset).fit()
Regresja średnio zaawansowana ze statsmodels w Pythonie

Cztery możliwe wyniki

przewidywane fałsz. przewidywane prawdz.
rzeczywiste fałsz. poprawne fałszywie pozytywne
rzeczywiste prawdz. fałszywie negatywne poprawne
conf_matrix = mdl_logit.pred_table()
print(conf_matrix)
[[102.  98.]
 [ 53. 147.]]
Regresja średnio zaawansowana ze statsmodels w Pythonie

Proces prognozowania

from itertools import product

explanatory1 = some_values
explanatory2 = some_values

p = product(explanatory1, explanatory2)

explanatory_data = pd.DataFrame(p, columns=["explanatory1", "explanatory2"])
prediction_data = explanatory_data.assign( mass_g = mdl_logit.predict(explanatory_data))
Regresja średnio zaawansowana ze statsmodels w Pythonie

Wizualizacja

prediction_data["most_likely_outcome"] = np.round(prediction_data["has_churned"])

sns.scatterplot(... data=churn, hue="has_churned", ...) sns.scatterplot(... data=prediction_data, hue="most_likely_outcome", ...)
Regresja średnio zaawansowana ze statsmodels w Pythonie

Czas na ćwiczenia!

Regresja średnio zaawansowana ze statsmodels w Pythonie

Preparing Video For Download...