Predictions and odds

Python में statsmodels के साथ Regression परिचय

Maarten Van den Broeck

Content Developer at DataCamp

regplot() की predictions

sns.regplot(x="time_since_last_purchase",
            y="has_churned",
            data=churn,
            ci=None,
            logistic=True)

plt.show()

आखिरी खरीद से बीते समय बनाम churn का स्कैटर प्लॉट, साथ में एक लॉजिस्टिक ट्रेंड लाइन.

Python में statsmodels के साथ Regression परिचय

Predictions बनाना

mdl_recency = logit("has_churned ~ time_since_last_purchase",
                    data = churn).fit()


explanatory_data = pd.DataFrame( {"time_since_last_purchase": np.arange(-1, 6.25, 0.25)})
prediction_data = explanatory_data.assign( has_churned = mdl_recency.predict(explanatory_data))
Python में statsmodels के साथ Regression परिचय

Point predictions जोड़ना

sns.regplot(x="time_since_last_purchase",
            y="has_churned",
            data=churn,
            ci=None,
            logistic=True)

sns.scatterplot(x="time_since_last_purchase",
                y="has_churned",
                data=prediction_data,
                color="red")

plt.show()

आखिरी खरीद से बीते समय बनाम churn का स्कैटर प्लॉट, साथ में लॉजिस्टिक ट्रेंड लाइन. प्लॉट में predict() के नतीजे ऐन ट्रेंड लाइन पर दिख रहे हैं.

Python में statsmodels के साथ Regression परिचय

सबसे संभावित outcome निकालना

prediction_data = explanatory_data.assign(
    has_churned = mdl_recency.predict(explanatory_data))

prediction_data["most_likely_outcome"] = np.round(prediction_data["has_churned"])
Python में statsmodels के साथ Regression परिचय

Most likely outcome का विज़ुअलाइज़ेशन

sns.regplot(x="time_since_last_purchase",
            y="has_churned",
            data=churn,
            ci=None,
            logistic=True)

sns.scatterplot(x="time_since_last_purchase",
                y="most_likely_outcome",
                data=prediction_data,
                color="red")

plt.show()

आखिरी खरीद से बीते समय बनाम churn का स्कैटर प्लॉट, साथ में लॉजिस्टिक ट्रेंड लाइन. प्लॉट में most likely outcomes अंकित हैं: कम समय पर churn नहीं, अधिक समय पर churn.

Python में statsmodels के साथ Regression परिचय

Odds

Odds किसी घटना की होने की probability को उसके न होने की probability से भाग देने पर मिलती है.

$$ \text{odds} = \frac{\text{probability}}{(1 - \text{probability)}} $$

$$ \text{odds} = \frac{0.25}{(1 - 0.25)} = \frac{1}{3} $$

odds बनाम probability का लाइन प्लॉट. probability एक के पास जाते ही कर्व आसिम्प्टोटिक रूप से अनंत की ओर बढ़ता है.

Python में statsmodels के साथ Regression परिचय

Odds की गणना

prediction_data["odds"] = prediction_data["has_churned"] / 
                            (1 - prediction_data["has_churned"])

Python में statsmodels के साथ Regression परिचय

Odds का विज़ुअलाइज़ेशन

sns.lineplot(x="time_since_last_purchase",
             y="odds",
             data=prediction_data)


plt.axhline(y=1, linestyle="dotted")
plt.show()

आखिरी खरीद से बीते समय बनाम odds का लाइन प्लॉट, साथ में odds बराबर 1 की रेखा. कम समय पर सबसे संभावित परिणाम churn नहीं है. समय बढ़ने पर churn के odds बढ़ते हैं, और अधिकतम पाँच गुना तक non-churn के odds से.

Python में statsmodels के साथ Regression परिचय

Log odds का विज़ुअलाइज़ेशन

sns.lineplot(x="time_since_last_purchase",
             y="odds",
             data=prediction_data)

plt.axhline(y=1,
            linestyle="dotted")
plt.yscale("log")

plt.show()

उसी लाइन प्लॉट में y-धुरी पर logarithmic स्केल है, जिससे odds की रेखा लगभग linear दिख रही है.

Python में statsmodels के साथ Regression परिचय

Log odds की गणना

prediction_data["log_odds"] = np.log(prediction_data["odds"])
Python में statsmodels के साथ Regression परिचय

सारी predictions एक साथ

time_since_last_prchs has_churned most_likely_rspns odds log_odds
0 0.491 0 0.966 -0.035
2 0.623 1 1.654 0.503
4 0.739 1 2.834 1.042
6 0.829 1 4.856 1.580
... ... ... ... ...
Python में statsmodels के साथ Regression परिचय

Scales की तुलना

Scale Are values easy to interpret? Are changes easy to interpret? Is precise?
Probability
Most likely outcome ✔✔
Odds
Log odds
Python में statsmodels के साथ Regression परिचय

अभ्यास करते हैं!

Python में statsmodels के साथ Regression परिचय

Preparing Video For Download...