डेटा साइंस - लीनियर रिग्रेशन
हम एक महत्वपूर्ण चर खो रहे हैं जो कैलोरी_बर्नेज को प्रभावित करता है, जो कि प्रशिक्षण सत्र की अवधि है।
औसत_पल्स के संयोजन में अवधि एक साथ कैलोरी_बर्नेज को अधिक सटीक रूप से समझाएगी।
रेखीय प्रतिगमन
प्रतिगमन शब्द का प्रयोग तब किया जाता है जब आप चरों के बीच संबंध खोजने का प्रयास करते हैं।
मशीन लर्निंग और सांख्यिकीय मॉडलिंग में, उस संबंध का उपयोग घटनाओं के परिणाम की भविष्यवाणी करने के लिए किया जाता है।
इस मॉड्यूल में, हम निम्नलिखित प्रश्नों को शामिल करेंगे:
- क्या हम यह निष्कर्ष निकाल सकते हैं कि औसत_पल्स और अवधि कैलोरी_बर्नेज से संबंधित हैं?
- क्या हम कैलोरी_बर्नेज की भविष्यवाणी करने के लिए औसत_पल्स और अवधि का उपयोग कर सकते हैं?
कम से कम वर्ग विधि
रैखिक प्रतिगमन कम से कम वर्ग विधि का उपयोग करता है।
अवधारणा सभी प्लॉट किए गए डेटा बिंदुओं के माध्यम से एक रेखा खींचना है। रेखा इस तरह से स्थित है कि यह सभी डेटा बिंदुओं की दूरी को कम करती है।
दूरी को "अवशिष्ट" या "त्रुटियां" कहा जाता है।
लाल धराशायी रेखाएँ डेटा बिंदुओं से खींचे गए गणितीय फ़ंक्शन की दूरी का प्रतिनिधित्व करती हैं।
एक व्याख्यात्मक चर का उपयोग करके रैखिक प्रतिगमन
इस उदाहरण में, हम रैखिक प्रतिगमन का उपयोग करके औसत_पल्स के साथ कैलोरी_बर्नेज की भविष्यवाणी करने का प्रयास करेंगे:
उदाहरण
import pandas as pd
import matplotlib.pyplot as plt
from scipy
import stats
full_health_data = pd.read_csv("data.csv", header=0, sep=",")
x = full_health_data["Average_Pulse"]
y = full_health_data ["Calorie_Burnage"]
slope, intercept, r, p, std_err = stats.linregress(x, y)
def myfunc(x):
return
slope * x + intercept
mymodel = list(map(myfunc, x))
plt.scatter(x, y)
plt.plot(x, slope * x + intercept)
plt.ylim(ymin=0, ymax=2000)
plt.xlim(xmin=0, xmax=200)
plt.xlabel("Average_Pulse")
plt.ylabel ("Calorie_Burnage")
plt.show()
उदाहरण समझाया:
- आपको आवश्यक मॉड्यूल आयात करें: पंडों, matplotlib और Scipy
- औसत_पल्स को x के रूप में अलग करें। कैलोरी_बर्नेज को y . के रूप में अलग करें
- इसके साथ महत्वपूर्ण प्रमुख मान प्राप्त करें: ढलान, अवरोधन, r, p, std_err = stats.linregress(x, y)
- एक फ़ंक्शन बनाएं जो एक नया मान वापस करने के लिए ढलान और अवरोध मानों का उपयोग करता है। यह नया मान दर्शाता है कि y-अक्ष पर संगत x मान कहाँ रखा जाएगा
- फ़ंक्शन के माध्यम से x सरणी के प्रत्येक मान को चलाएँ। इसका परिणाम y-अक्ष के लिए नए मानों के साथ एक नई सरणी में होगा: mymodel = list(map(myfunc, x))
- मूल स्कैटर प्लॉट बनाएं: plt.scatter(x, y)
- रैखिक प्रतिगमन की रेखा खींचना: plt.plot(x, mymodel)
- अक्ष के अधिकतम और न्यूनतम मानों को परिभाषित करें
- अक्ष को लेबल करें: "Average_Pulse" और "Calorie_Burnage"
आउटपुट:
क्या आपको लगता है कि रेखा कैलोरी_बर्नेज की सटीक भविष्यवाणी करने में सक्षम है?
हम दिखाएंगे कि कैलोरी_बर्नेज की सटीक भविष्यवाणी करने के लिए अकेले औसत_पल्स चर पर्याप्त नहीं है।