स्टैट्समॉडल में रिग्रेशन मॉडल का उपयोग करके भविष्यवाणियां कैसे करें
आप नई टिप्पणियों के बारे में भविष्यवाणियां करने के लिए पायथन में स्टैटमॉडल मॉड्यूल का उपयोग करके प्रतिगमन मॉडल फिटिंग का उपयोग करने के लिए निम्नलिखित मूल वाक्यविन्यास का उपयोग कर सकते हैं:
model. predict (df_new)
यह विशेष सिंटैक्स मॉडल नामक सांख्यिकीय मॉडल के लिए उपयुक्त प्रतिगमन मॉडल का उपयोग करके df_new नामक नए डेटाफ़्रेम की प्रत्येक पंक्ति के लिए अनुमानित प्रतिक्रिया मानों की गणना करेगा।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।
उदाहरण: स्टैट्समॉडल में एक प्रतिगमन मॉडल का उपयोग करके भविष्यवाणियां करना
मान लीजिए कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम है जिसमें अध्ययन किए गए घंटों, ली गई प्रारंभिक परीक्षाओं और एक निश्चित कक्षा में छात्रों द्वारा प्राप्त अंतिम ग्रेड के बारे में जानकारी शामिल है:
import pandas as pd #createDataFrame df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6], ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2], ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]}) #view head of DataFrame df. head () hours exam score 0 1 1 76 1 2 3 78 2 2 3 85 3 4 5 88 4 2 2 72
हम मल्टीपल लीनियर रिग्रेशन मॉडल को फिट करने के लिए स्टैटमॉडल मॉड्यूल के OLS() फ़ंक्शन का उपयोग कर सकते हैं, “घंटे” और “परीक्षा” को भविष्यवक्ता चर के रूप में और “स्कोर” को प्रतिक्रिया चर के रूप में उपयोग कर सकते हैं:
import statsmodels. api as sm #define predictor and response variables y = df[' score '] x = df[[' hours ', ' exams ']] #add constant to predictor variables x = sm. add_constant (x) #fit linear regression model model = sm. OLS (y,x). fit () #view model summary print ( model.summary ()) OLS Regression Results ==================================================== ============================ Dept. Variable: R-squared score: 0.718 Model: OLS Adj. R-squared: 0.661 Method: Least Squares F-statistic: 12.70 Date: Fri, 05 Aug 2022 Prob (F-statistic): 0.00180 Time: 09:24:38 Log-Likelihood: -38.618 No. Observations: 13 AIC: 83.24 Df Residuals: 10 BIC: 84.93 Df Model: 2 Covariance Type: non-robust ==================================================== ============================ coef std err t P>|t| [0.025 0.975] -------------------------------------------------- ---------------------------- const 71.4048 4.001 17.847 0.000 62.490 80.319 hours 5.1275 1.018 5.038 0.001 2.860 7.395 exams -1.2121 1.147 -1.057 0.315 -3.768 1.344 ==================================================== ============================ Omnibus: 1,103 Durbin-Watson: 1,248 Prob(Omnibus): 0.576 Jarque-Bera (JB): 0.803 Skew: -0.289 Prob(JB): 0.669 Kurtosis: 1.928 Cond. No. 11.7 ==================================================== ============================
आउटपुट में कोएफ़ कॉलम से, हम फिटेड रिग्रेशन मॉडल लिख सकते हैं:
स्कोर = 71.4048 + 5.1275 (घंटे) – 1.2121 (परीक्षा)
अब मान लीजिए कि हम पांच नए छात्रों के “स्कोर” की भविष्यवाणी करने के लिए फिटेड रिग्रेशन मॉडल का उपयोग करना चाहते हैं।
सबसे पहले, आइए पांच नए अवलोकनों को रखने के लिए एक डेटाफ़्रेम बनाएं:
#create new DataFrame
df_new = pd. DataFrame ({' hours ': [1, 2, 2, 4, 5],
' exams ': [1, 1, 4, 3, 3]})
#add column for constant
df_new = sm. add_constant (df_new)
#view new DataFrame
print (df_new)
const hours exams
0 1.0 1 1
1 1.0 2 1
2 1.0 2 4
3 1.0 4 3
4 1.0 5 3
इसके बाद, हम इनमें से प्रत्येक छात्र के लिए “स्कोर” की भविष्यवाणी करने के लिए पूर्वानुमान () फ़ंक्शन का उपयोग कर सकते हैं, हमारे फिट किए गए प्रतिगमन मॉडल में भविष्यवक्ता चर के मान के रूप में “घंटे” और “परीक्षा” का उपयोग कर सकते हैं:
#predict scores for the five new students model. predict (df_new) 0 75.320242 1 80.447734 2 76.811480 3 88.278550 4 93.406042 dtype:float64
यहां परिणाम की व्याख्या करने का तरीका बताया गया है:
- नए डेटाफ़्रेम में प्रथम छात्र को 75.32 अंक प्राप्त होने की उम्मीद है।
- नए डेटाफ़्रेम में दूसरे छात्र को 80.45 अंक मिलने की उम्मीद है।
और इसी तरह।
यह समझने के लिए कि इन भविष्यवाणियों की गणना कैसे की गई, हमें पिछले फिट किए गए प्रतिगमन मॉडल का संदर्भ लेना होगा:
स्कोर = 71.4048 + 5.1275 (घंटे) – 1.2121 (परीक्षा)
नए छात्रों के लिए “घंटे” और “परीक्षा” के मूल्यों को जोड़कर, हम उनके अनुमानित स्कोर की गणना कर सकते हैं।
उदाहरण के लिए, नए डेटाफ़्रेम में पहले छात्र के लिए घंटों का मान 1 और परीक्षाओं के लिए 1 का मान था।
इस प्रकार, उनके अनुमानित स्कोर की गणना इस प्रकार की गई:
स्कोर = 71.4048 + 5.1275(1) – 1.2121(1) = 75.32 ।
नए डेटाफ़्रेम में प्रत्येक छात्र के स्कोर की गणना उसी तरह की गई थी।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य कार्य कैसे करें:
पायथन में लॉजिस्टिक रिग्रेशन कैसे करें
पायथन में प्रतिगमन मॉडल के एआईसी की गणना कैसे करें
पायथन में समायोजित आर-वर्ग की गणना कैसे करें