सीबॉर्न रेगप्लॉट में प्रतिगमन समीकरण कैसे प्रदर्शित करें


आप डेटा सेट में फिट होने वाले रैखिक प्रतिगमन मॉडल को प्लॉट करने के लिए सीबॉर्न रेगप्लॉट फ़ंक्शन का उपयोग कर सकते हैं।

दुर्भाग्य से, सीबॉर्न के पास लाइन से रिग्रेशन समीकरण निकालने के लिए कोई अंतर्निहित सुविधा नहीं है, लेकिन आप रिग्रेशन गुणांक को तुरंत ढूंढने के लिए scipy.stats.linregress फ़ंक्शन का उपयोग कर सकते हैं:

 import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. x , y=df. y )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।

उदाहरण: सीबॉर्न रेगप्लॉट में प्रतिगमन समीकरण दिखाएं

मान लीजिए कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम है जिसमें विभिन्न छात्रों के अध्ययन के घंटों और अंतिम परीक्षा अंकों के बारे में जानकारी शामिल है:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' score ': [77, 79, 84, 80, 81, 89, 95, 90, 83, 89]})

#view DataFrame
print (df)

   hours score
0 1 77
1 2 79
2 3 84
3 4 80
4 5 81
5 6 89
6 7 95
7 8 90
8 9 83
9 10 89

मान लीजिए कि हम डेटा बिंदुओं को प्लॉट करना चाहते हैं और डेटा में एक फिटेड रिग्रेशन लाइन जोड़ना चाहते हैं।

ऐसा करने के लिए हम निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

 import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#display slope and intercept of regression equation
print (intercept, slope)

77.39999999999995 1.3272727272727356

परिणाम से, हम देख सकते हैं कि प्रतिगमन रेखा में निम्नलिखित समीकरण हैं:

y = 77.4 + 1.327

यदि हम इस समीकरण को सीबॉर्न रेगप्लॉट पर प्रदर्शित करना चाहते हैं, तो हम matplotlib text() फ़ंक्शन का उपयोग कर सकते हैं:

 import matplotlib. pyplot as plt
import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#add regression equation to plot
plt. text (2, 95, ' y = ' + str(round(intercept,3)) + ' + ' + str(round(slope,3)) + ' x ') 

सीबॉर्न रेगप्लॉट समीकरण

ध्यान दें कि प्रतिगमन समीकरण अब प्लॉट के ऊपरी बाएँ कोने में प्रदर्शित होता है।

ध्यान दें कि टेक्स्ट() फ़ंक्शन में हमने निर्दिष्ट किया है कि प्रतिगमन समीकरण (2, 95) के (x, y) निर्देशांक से प्रदर्शित किया जाना चाहिए।

आप अपने प्लॉट में जहां भी चाहें, प्रतिगमन समीकरण प्रदर्शित करने के लिए इन निर्देशांकों को बेझिझक संशोधित करें।

नोट : आप सीबॉर्न रेगप्लॉट फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि सीबॉर्न में अन्य सामान्य कार्य कैसे करें:

सीबॉर्न प्लॉट के आकृति आकार को कैसे समायोजित करें
सीबॉर्न में एक लीजेंड की स्थिति कैसे बदलें
सीबॉर्न प्लॉट पर अक्ष लेबल कैसे बदलें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *