Predictions बनाना

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

Maarten Van den Broeck

Content Developer at DataCamp

Fish डेटासेट: Bream

bream = fish[fish["species"] == "Bream"]
print(bream.head())
  species  mass_g  length_cm
0   Bream   242.0       23.2
1   Bream   290.0       24.0
2   Bream   340.0       23.9
3   Bream   363.0       26.3
4   Bream   430.0       26.5

कॉमन ब्रीम, _Abramis brama_

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

Mass बनाम length का प्लॉट

sns.regplot(x="length_cm",
            y="mass_g",
            data=bream,
            ci=None)

plt.show()

लंबाई के मुकाबले ब्रीम के द्रव्यमान का स्कैटर प्लॉट, साथ में एक लीनियर ट्रेंड लाइन। सभी बिंदु ट्रेंड लाइन के क़रीब हैं.

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

मॉडल चलाना

mdl_mass_vs_length = ols("mass_g ~ length_cm", data=bream).fit()

print(mdl_mass_vs_length.params)
Intercept   -1035.347565
length_cm      54.549981
dtype: float64
Python में statsmodels के साथ Regression परिचय

Prediction के लिए explanatory मान

अगर मैं explanatory वैरिएबल्स को इन मानों पर सेट करूँ,
तो response वैरिएबल का मान क्या होगा?

explanatory_data = pd.DataFrame({"length_cm": np.arange(20, 41)})
    length_cm
0          20
1          21
2          22
3          23
4          24
5          25
     ...
Python में statsmodels के साथ Regression परिचय

predict() कॉल करें

print(mdl_mass_vs_length.predict(explanatory_data))
0       55.652054
1      110.202035
2      164.752015
3      219.301996
4      273.851977
    ...
16     928.451749
17     983.001730
18    1037.551710
19    1092.101691
20    1146.651672
Length: 21, dtype: float64
Python में statsmodels के साथ Regression परिचय

DataFrame के अंदर predict करना

explanatory_data = pd.DataFrame(
  {"length_cm": np.arange(20, 41)}
)

prediction_data = explanatory_data.assign( mass_g=mdl_mass_vs_length.predict(explanatory_data) )
print(prediction_data)
    length_cm         mass_g
0          20      55.652054
1          21     110.202035
2          22     164.752015
3          23     219.301996
4          24     273.851977
..        ...            ...
16         36     928.451749
17         37     983.001730
18         38    1037.551710
19         39    1092.101691
20         40    1146.651672
Python में statsmodels के साथ Regression परिचय

Predictions दिखाना

import matplotlib.pyplot as plt
import seaborn as sns
fig = plt.figure()
sns.regplot(x="length_cm",
            y="mass_g",
            ci=None,
            data=bream,)
sns.scatterplot(x="length_cm",
                y="mass_g",
                data=prediction_data, 
                color="red",
                marker="s")
plt.show()

लंबाई के मुकाबले ब्रीम के द्रव्यमान का स्कैटर प्लॉट, साथ में लीनियर ट्रेंड लाइन। प्लॉट में predict() से निकले बिंदु ऐनोटेट किए गए हैं। ये बिंदु ट्रेंड लाइन को ठीक-ठीक फॉलो करते हैं.

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

Extrapolating

Extrapolating का मतलब है देखे गए डेटा की रेंज से बाहर predictions बनाना.

little_bream = pd.DataFrame({"length_cm": [10]})

pred_little_bream = little_bream.assign(
    mass_g=mdl_mass_vs_length.predict(little_bream))

print(pred_little_bream)
   length_cm      mass_g
0         10 -489.847756

लंबाई के मुकाबले ब्रीम के द्रव्यमान का स्कैटर प्लॉट, साथ में लीनियर ट्रेंड लाइन। प्लॉट में एक काल्पनिक 10 cm ब्रीम और उसका predicted mass ऐनोटेट है.

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

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

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

Preparing Video For Download...