मशीन लर्निंग - मल्टीपल रिग्रेशन
बहु - प्रतिगमन
एकाधिक प्रतिगमन रैखिक प्रतिगमन की तरह है , लेकिन एक से अधिक स्वतंत्र मूल्य के साथ, जिसका अर्थ है कि हम दो या अधिक चर के आधार पर एक मूल्य की भविष्यवाणी करने का प्रयास करते हैं।
नीचे दिए गए डेटा सेट पर एक नज़र डालें, इसमें कारों के बारे में कुछ जानकारी है।
कार | नमूना | आयतन | वज़न | सीओ 2 |
टोयोटा | आयगो | 1000 | 790 | 99 |
मित्सुबिशी | अंतरिक्ष सितारा | 1200 | 1160 | 95 |
स्कोडा | सिटिगो | 1000 | 929 | 95 |
व्यवस्थापत्र | 500 | 900 | 865 | 90 |
छोटा | कूपर | 1500 | 1140 | 105 |
वीडब्ल्यू | यूपी! | 1000 | 929 | 105 |
स्कोडा | फ़ेबिया | 1400 | 1109 | 90 |
मर्सिडीज | एक कक्षा | 1500 | 1365 | 92 |
पायाब | पर्व | 1500 | 1112 | 98 |
ऑडी | ए 1 | 1600 | 1150 | 99 |
हुंडई | मैं -20 | 1100 | 980 | 99 |
सुजुकी | तीव्र | 1300 | 990 | 101 |
पायाब | पर्व | 1000 | 1112 | 99 |
होंडा | नागरिक | 1600 | 1252 | 94 |
Hundai | I30 | 1600 | 1326 | 97 |
ओपल | एस्ट्रा | 1600 | 1330 | 97 |
बीएमडब्ल्यू | 1 | 1600 | 1365 | 99 |
माजदा | 3 | 2200 | 1280 | 104 |
स्कोडा | तेज़ | 1600 | 1119 | 104 |
पायाब | केंद्र | 2000 | 1328 | 105 |
पायाब | मोंडो | 1600 | 1584 | 94 |
ओपल | बिल्ला | 2000 | 1428 | 99 |
मर्सिडीज | सी-क्लास | 2100 | 1365 | 99 |
स्कोडा | ऑक्टेविया | 1600 | 1415 | 99 |
वोल्वो | S60 | 2000 | 1415 | 99 |
मर्सिडीज | सीएलए | 1500 | 1465 | 102 |
ऑडी | ए4 | 2000 | 1490 | 104 |
ऑडी | ए6 | 2000 | 1725 | 114 |
वोल्वो | वी70 | 1600 | 1523 | 109 |
बीएमडब्ल्यू | 5 | 2000 | 1705 | 114 |
मर्सिडीज | ई क्लास | 2100 | 1605 | 115 |
वोल्वो | एक्ससी70 | 2000 | 1746 | 117 |
पायाब | बी मैक्स | 1600 | 1235 | 104 |
बीएमडब्ल्यू | 2 | 1600 | 1390 | 108 |
ओपल | ज़फीरास | 1600 | 1405 | 109 |
मर्सिडीज | एसएलके | 2500 | 1395 | 120 |
हम इंजन के आकार के आधार पर कार के CO2 उत्सर्जन की भविष्यवाणी कर सकते हैं, लेकिन कई प्रतिगमन के साथ हम भविष्यवाणी को अधिक सटीक बनाने के लिए कार के वजन की तरह अधिक चर में फेंक सकते हैं।
यह कैसे काम करता है?
पायथन में हमारे पास ऐसे मॉड्यूल हैं जो हमारे लिए काम करेंगे। पंडों मॉड्यूल को आयात करके प्रारंभ करें।
import pandas
हमारे पांडा ट्यूटोरियल में पंडों के मॉड्यूल के बारे में जानें ।
पांडा मॉड्यूल हमें सीएसवी फाइलों को पढ़ने और डेटाफ्रेम ऑब्जेक्ट वापस करने की अनुमति देता है।
फ़ाइल केवल परीक्षण उद्देश्यों के लिए है, आप इसे यहां डाउनलोड कर सकते हैं: Cars.csv
df = pandas.read_csv("cars.csv")
फिर स्वतंत्र मानों की एक सूची बनाएं और इस चर को कॉल करें X
।
आश्रित मूल्यों को एक चर में रखें जिसे कहा जाता है y
।
X = df[['Weight', 'Volume']]
y = df['CO2']
युक्ति: स्वतंत्र मानों की सूची को अपर केस X के साथ, और आश्रित मानों की सूची को लोअर केस y के साथ नाम देना आम बात है।
हम sklearn मॉड्यूल से कुछ विधियों का उपयोग करेंगे, इसलिए हमें उस मॉड्यूल को भी आयात करना होगा:
from sklearn import linear_model
स्केलेर मॉड्यूल से हम LinearRegression()
एक रेखीय प्रतिगमन वस्तु बनाने के लिए विधि का उपयोग करेंगे।
इस ऑब्जेक्ट में एक विधि है जिसे fit()
स्वतंत्र और आश्रित मानों को पैरामीटर के रूप में लेता है और रिग्रेशन ऑब्जेक्ट को डेटा के साथ भरता है जो संबंध का वर्णन करता है:
regr = linear_model.LinearRegression()
regr.fit(X, y)
अब हमारे पास एक प्रतिगमन वस्तु है जो कार के वजन और मात्रा के आधार पर CO2 मूल्यों की भविष्यवाणी करने के लिए तैयार है:
#predict the CO2 emission of a car where the weight
is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])
उदाहरण
कार्रवाई में पूरा उदाहरण देखें:
import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
regr =
linear_model.LinearRegression()
regr.fit(X, y)
#predict the CO2
emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])
print(predictedCO2)
परिणाम:
[107.2087328]
हमने भविष्यवाणी की है कि 1.3 लीटर इंजन वाली कार, और 2300 किलोग्राम वजन, अपने द्वारा चलाए जाने वाले प्रत्येक किलोमीटर के लिए लगभग 107 ग्राम CO2 छोड़ेगी।
गुणक
गुणांक एक ऐसा कारक है जो अज्ञात चर के साथ संबंध का वर्णन करता है।
उदाहरण: यदि x
एक चर है, तो
दो गुना है 2x
। अज्ञात चर है, और संख्या गुणांक है।x
x
2
इस मामले में, हम सीओ 2 के खिलाफ वजन के गुणांक मूल्य और सीओ 2 के खिलाफ मात्रा के लिए पूछ सकते हैं। हमें जो उत्तर मिलता है वह हमें बताता है कि यदि हम स्वतंत्र मूल्यों में से किसी एक को बढ़ाते या घटाते हैं तो क्या होगा।
उदाहरण
प्रतीपगमन वस्तु के गुणांक मान मुद्रित करें:
import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
regr =
linear_model.LinearRegression()
regr.fit(X, y)
print(regr.coef_)
परिणाम:
[0.00755095 0.00780526]
परिणाम समझाया
परिणाम सरणी वजन और आयतन के गुणांक मूल्यों का प्रतिनिधित्व करती है।
वजन: 0.00755095
वॉल्यूम: 0.00780526
ये मान हमें बताते हैं कि यदि वजन 1kg बढ़ जाता है, तो CO2 उत्सर्जन 0.00755095g बढ़ जाता है।
और अगर इंजन का आकार (वॉल्यूम) 1 सेमी 3 बढ़ जाता है, तो CO2 उत्सर्जन 0.00780526 ग्राम बढ़ जाता है।
मुझे लगता है कि यह एक उचित अनुमान है, लेकिन इसका परीक्षण करें!
हम पहले ही भविष्यवाणी कर चुके हैं कि अगर 1300cm 3 इंजन वाली कार का वजन 2300kg है, तो CO2 उत्सर्जन लगभग 107g होगा।
क्या होगा अगर हम 1000 किलो के साथ वजन बढ़ाते हैं?
उदाहरण
पहले से उदाहरण को कॉपी करें, लेकिन वजन को 2300 से 3300 में बदलें:
import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
regr =
linear_model.LinearRegression()
regr.fit(X, y)
predictedCO2 = regr.predict([[3300, 1300]])
print(predictedCO2)
परिणाम:
[114.75968007]
हमने भविष्यवाणी की है कि 1.3 लीटर इंजन वाली कार, और 3300 किलोग्राम वजन, अपने द्वारा चलाए जाने वाले प्रत्येक किलोमीटर के लिए लगभग 115 ग्राम CO2 छोड़ेगी।
जो दर्शाता है कि 0.00755095 का गुणांक सही है:
107.2087328 + (1000 * 0.00755095) = 114.75968