html
मल्टीपल लीनियर रिग्रेशन में महारत हासिल करना: कैटेगोरिकल वेरिएबल्स को एन्कोड करने के लिए एक व्यापक गाइड
विषय सूची
- रिग्रेशन मॉडलों में कैटेगोरिकल डेटा को समझना
- लेबल एन्कोडिंग बनाम वन-हॉट एन्कोडिंग
- पायथन और जुपिटर नोटबुक का उपयोग करके व्यावहारिक प्रदर्शन
- मल्टीपल लीनियर रिग्रेशन में डमी वेरिएबल ट्रैप
- रिग्रेशन मॉडल के लिए पूर्व-संसाधन कदम
- मॉडल का मूल्यांकन करना
- निष्कर्ष
रिग्रेशन मॉडलों में कैटेगोरिकल डेटा को समझना
मल्टीपल लीनियर रिग्रेशन एक सांख्यिकीय तकनीक है जो एक निर्भरशील वेरिएबल और कई स्वतंत्र वेरिएबल्स के बीच संबंध को मॉडल करती है। जबकि संख्यात्मक डेटा को सीधे इन मॉडलों में उपयोग किया जा सकता है, कैटेगोरिकल डेटा—जो गुणों या लेबल का प्रतिनिधित्व करता है—को प्रभावी रूप से उपयोग करने के लिए परिवर्तन की आवश्यकता होती है।
एन्कोडिंग क्यों महत्वपूर्ण है
"लिंग" या "क्षेत्र" जैसे कैटेगोरिकल वेरिएबल्स गैर-संख्यात्मक होते हैं और इन्हें संख्यात्मक स्वरूप में परिवर्तित करने की आवश्यकता होती है। उचित एन्कोडिंग यह सुनिश्चित करती है कि मशीन लर्निंग एल्गोरिदम इन वेरिएबल्स को सही ढंग से व्याख्यायित करे बिना किसी पूर्वाग्रह या भ्रामक पैटर्न को पेश किए।
लेबल एन्कोडिंग बनाम वन-हॉट एन्कोडिंग
कैटेगोरिकल वेरिएबल्स से निपटने के लिए, दो प्रमुख एन्कोडिंग तकनीकों का उपयोग किया जाता है:
- लेबल एन्कोडिंग: प्रत्येक श्रेणी को एक अद्वितीय पूर्णांक में परिवर्तित करता है। बाइनरी श्रेणियों या क्रमागत डेटा के लिए उपयुक्त जहां क्रम महत्वपूर्ण होता है।
- वन-हॉट एन्कोडिंग: प्रत्येक श्रेणी के लिए बाइनरी कॉलम बनाता है, जिससे किसी भी क्रमात्मक संबंध को हटाया जाता है और मॉडल को प्रत्येक श्रेणी को स्वतंत्र रूप से मानने की अनुमति मिलती है।
सही एन्कोडिंग विधि का चयन मॉडल के प्रदर्शन और व्याख्यात्मकता के लिए महत्वपूर्ण है।
पायथन और जुपिटर नोटबुक का उपयोग करके व्यावहारिक प्रदर्शन
आइए पायथन के scikit-learn लाइब्रेरी और जुपिटर नोटबुक का उपयोग करके मल्टीपल लीनियर रिग्रेशन मॉडल में लेबल एन्कोडिंग और वन-हॉट एन्कोडिंग का प्रदर्शन करने के लिए एक व्यावहारिक उदाहरण देखें।
लाइब्रेरी इम्पोर्ट करना
डेटा मैनिपुलेशन, विज़ुअलाइज़ेशन, और मशीन लर्निंग के लिए आवश्यक लाइब्रेरी इम्पोर्ट करके शुरू करें।
12345
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snssns.set()
डेटासेट लोड करना और उसका अन्वेषण करना
हम Kaggle से बीमा डेटासेट का उपयोग करेंगे, जिसमें व्यक्तियों की जनसांख्यिकी और बीमा शुल्क के बारे में जानकारी शामिल है।
123456789
# Load the datasetdata = pd.read_csv('S07_datasets_13720_18513_insurance.csv') # Separate features and target variableX = data.iloc[:,:-1]Y = data.iloc[:,-1] # Display the first few rowsdata.head()
आउटपुट:
उम्र
लिंग
BMI
बच्चे
धूम्रपान
क्षेत्र
शुल्क
19
female
27.900
0
yes
southwest
16884.92400
18
male
33.770
1
no
southeast
1725.55230
28
male
33.000
3
no
southeast
4449.46200
33
male
22.705
0
no
northwest
21984.47061
32
male
28.880
0
no
northwest
3866.85520
कैटेगोरिकल फीचर्स का लेबल एन्कोडिंग
लेबल एन्कोडिंग बाइनरी कैटेगोरिकल वेरिएबल्स के लिए आदर्श है। इस डेटासेट में, "लिंग" और "धूम्रपान" बाइनरी हैं और इसलिए लेबल एन्कोडिंग के लिए उपयुक्त हैं।
123456789
from sklearn import preprocessingle = preprocessing.LabelEncoder() # Encode 'sex' and 'smoker' columnsX['sex'] = le.fit_transform(X['sex'])X['smoker'] = le.fit_transform(X['smoker']) # Display the transformed featuresX
आउटपुट:
उम्र
लिंग
BMI
बच्चे
धूम्रपान
क्षेत्र
19
0
27.900
0
1
southwest
18
1
33.770
1
0
southeast
28
1
33.000
3
0
southeast
33
1
22.705
0
0
northwest
32
1
28.880
0
0
northwest
...
...
...
...
...
...
61
0
29.070
0
1
northwest
कैटेगोरिकल फीचर्स का वन-हॉट एन्कोडिंग
दो से अधिक श्रेणियों वाले कैटेगोरिकल वेरिएबल्स के लिए, वन-हॉट एन्कोडिंग को प्राथमिकता दी जाती है ताकि क्रमात्मक संबंधों को पेश किए बिना प्रत्येक श्रेणी को स्वतंत्र रूप से माना जा सके।
123456789
from sklearn.preprocessing import OneHotEncoderfrom sklearn.compose import ColumnTransformer # Apply One-Hot Encoding to the 'region' column (index 5)columnTransformer = ColumnTransformer([('encoder', OneHotEncoder(), [5])], remainder='passthrough')X = columnTransformer.fit_transform(X) # Display the transformed featuresprint(X)
आउटपुट:
1234567
[[ 0. 0. 0. ... 27.9 0. 1. ] [ 0. 0. 1. ... 33.77 1. 0. ] [ 0. 0. 1. ... 33. 3. 0. ] ... [ 0. 0. 1. ... 36.85 0. 0. ] [ 0. 0. 0. ... 25.8 0. 0. ] [ 0. 1. 0. ... 29.07 0. 1. ]]
मल्टीपल लीनियर रिग्रेशन में डमी वेरिएबल ट्रैप
वन-हॉट एन्कोडिंग का उपयोग करते समय, डमी वेरिएबल ट्रैप से सावधान रहना आवश्यक है—एक ऐसा परिदृश्य जहां अतिरिक्त डमी वेरिएबल्स के कारण मल्टिकोलिनियरिटी उत्पन्न हो जाती है। इससे वेरिएंस अनुमान में वृद्धि और अविश्वसनीय मॉडल गुणांक हो सकते हैं।
ट्रैप को समझना
यदि किसी कैटेगोरिकल फीचर के लिए तीन डमी वेरिएबल्स बनाए जाते हैं जिनमें तीन श्रेणियां हैं (उदाहरण के लिए, साउथवेस्ट, नॉर्थवेस्ट, सेंट्रल), तो रिग्रेशन मॉडल में सभी तीनों को शामिल करने से परिपूर्ण मल्टिकोलिनियरिटी उत्पन्न होती है। ऐसा इसलिए है क्योंकि एक वेरिएबल को बाकी से सही ढंग से भविष्यवाणी किया जा सकता है, जिससे रिग्रेशन के लिए आवश्यक मैट्रिक्स इन्वर्शन फेल हो जाता है।
समाधान
डमी वेरिएबल ट्रैप से बचने के लिए, डमी वेरिएबल्स में से एक को हटा दें। यह सुनिश्चित करता है कि मॉडल पहचाने योग्य रहे और मल्टिकोलिनियरिटी से बचा रहे।
123456
# Modify OneHotEncoder to drop one categorycolumnTransformer = ColumnTransformer( [("encoder", OneHotEncoder(drop='first'), [5])], remainder='passthrough')X = columnTransformer.fit_transform(X)
रिग्रेशन मॉडल के लिए पूर्व-संसाधन कदम
प्रभावी पूर्व-संसाधन मजबूत रिग्रेशन मॉडल बनाने के लिए महत्वपूर्ण है। यहां आवश्यक कदमों का विवरण दिया गया है:
- डेटा इम्पोर्ट करना: pandas का उपयोग करके अपना डेटासेट लोड करें।
- मिसिंग डेटा को संभालना: किसी भी मिसिंग मूल्य को इमप्यूटेशन या हटाने के माध्यम से संबोधित करें।
- ट्रेन-टेस्ट स्प्लिट: मॉडल के प्रदर्शन का मूल्यांकन करने के लिए डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करें।
- फीचर चयन: हालांकि scikit-learn जैसी लाइब्रेरी इसे आंतरिक रूप से संभालती हैं, फीचर महत्व को समझना फायदेमंद हो सकता है।
- कैटेगोरिकल वेरिएबल्स को एन्कोड करना: जैसा कि चर्चा की गई है, लेबल एन्कोडिंग या वन-हॉट एन्कोडिंग का उपयुक्त रूप से उपयोग करें।
- असंतुलित डेटा को संभालना: रिग्रेशन में आम तौर पर लागू नहीं होता जब तक कि विशिष्ट वितरण की आवश्यकता न हो।
- फीचर स्केलिंग: जबकि वर्गीकरण में अक्सर आवश्यक होता है, यह रिग्रेशन मॉडलों में वैकल्पिक हो सकता है।
नोट: रिग्रेशन मॉडलों में, फीचर स्केलिंग सामान्यतः वैकल्पिक होता है क्योंकि स्केलिंग कभी-कभी गुणांकों की व्याख्यात्मकता को अस्पष्ट कर सकता है।
मॉडल का मूल्यांकन करना
पूर्व-संसाधन के बाद, रिग्रेशन मॉडल को बनाने और उसका मूल्यांकन करने का समय है।
लीनियर मॉडल बनाना
12345
from sklearn.linear_model import LinearRegression # Initialize and train the modelmodel = LinearRegression()model.fit(X_train, y_train)
पूर्वानुमान करना
12
# Predict on the test sety_pred = model.predict(X_test)
वास्तविक बनाम पूर्वानुमानित मानों की तुलना करना
123456
# Create a comparison DataFramecomparison = pd.DataFrame({ 'Actual': y_test, 'Predicted': y_pred})comparison.head()
आउटपुट:
वास्तविक
पूर्वानुमानित
1646.4297
4383.6809
11353.2276
12885.0389
8798.5930
12589.2165
10381.4787
13286.2292
2103.0800
544.7283
R² स्कोर के साथ मूल्यांकन करना
R² स्कोर मापन करता है कि स्वतंत्र वेरिएबल्स से निर्भरशील वेरिएबल में कितना विचलन पूर्वानुमानित किया जा सकता है।
12345
from sklearn.metrics import r2_score # Calculate R² scorer2 = r2_score(y_test, y_pred)print(f"R² Score: {r2}")
आउटपुट:
1
R² Score: 0.7623311844057112
लगभग 0.76 का R² स्कोर दर्शाता है कि बीमा शुल्क में 76% विभेदन को मॉडल द्वारा समझाया जा सकता है, जो कई अनुप्रयोगों के लिए एक सम्मानजनक प्रदर्शन है।
निष्कर्ष
मल्टीपल लीनियर रिग्रेशन में महारत हासिल करना केवल डेटा पर एक मॉडल फिट करने से अधिक है। लेबल एन्कोडिंग और वन-हॉट एन्कोडिंग जैसी तकनीकों का उपयोग करके कैटेगोरिकल वेरिएबल्स को सही ढंग से एन्कोड करना, जबकि डमी वेरिएबल ट्रैप जैसी खतरों से सावधान रहना, सटीक और विश्वसनीय मॉडल बनाने के लिए आवश्यक है। पूर्व-संसाधन कदमों का पालन करके और पायथन की मजबूत लाइब्रेरीज़ का उपयोग करके, आप रिग्रेशन विश्लेषण की जटिलताओं को प्रभावी ढंग से नेविगेट कर सकते हैं और अपने डेटा से सार्थक अंतर्दृष्टि प्राप्त कर सकते हैं।
अक्सर पूछे जाने वाले प्रश्न (FAQs)
1. लेबल एन्कोडिंग और वन-हॉट एन्कोडिंग में क्या अंतर है?
लेबल एन्कोडिंग प्रत्येक श्रेणी को एक अद्वितीय पूर्णांक सौंपता है, क्रमात्मक संबंधों को संरक्षित करते हुए, जिससे यह बाइनरी या क्रमात्मक कैटेगोरिकल वेरिएबल्स के लिए आदर्श होता है। वन-हॉट एन्कोडिंग प्रत्येक श्रेणी के लिए बाइनरी कॉलम बनाता है, किसी भी क्रमात्मक संबंध को समाप्त करते हुए और एल्गोरिदम को किसी भी अंतर्निहित क्रम की धारण नहीं करने देता है।
2. रिग्रेशन मॉडलों में फीचर स्केलिंग वैकल्पिक क्यों है?
वर्गीकरण मॉडलों के विपरीत जहां फीचर स्केलिंग कुछ एल्गोरिदम के प्रदर्शन को महत्वपूर्ण रूप से प्रभावित कर सकती है, रिग्रेशन मॉडल अक्सर फीचर्स के विभिन्न स्केल को अधिक सहजता से संभालते हैं। हालांकि, कुछ मामलों में, विशेष रूप से जब नियमितीकरण शामिल होती है, स्केलिंग अभी भी फायदेमंद हो सकती है।
3. मैं डमी वेरिएबल ट्रैप से कैसे बच सकता हूँ?
डमी वेरिएबल ट्रैप से बचने के लिए, वन-हॉट एन्कोडिंग के बाद प्रत्येक कैटेगोरिकल वेरिएबल के सेट से एक डमी वेरिएबल को हटा दें। इससे मल्टिकोलिनियरिटी हट जाती है और मॉडल अधिक स्थिर रहता है।
4. रिग्रेशन मॉडलों में R² स्कोर का मतलब क्या है?
R² स्कोर मापन करता है कि निर्भरशील वेरिएबल में कितना विचलन स्वतंत्र वेरिएबल्स से पूर्वानुमानित किया जा सकता है। उच्चतर R² बेहतर डेटा में मॉडल के फिट को दर्शाता है।
5. क्या मैं लेबल और वन-हॉट एन्कोडिंग के अलावा अन्य एन्कोडिंग तकनीकों का उपयोग कर सकता हूँ?
हां, अन्य एन्कोडिंग तकनीकें जैसे टारगेट एन्कोडिंग, फ्रीक्वेंसी एन्कोडिंग, और बाइनरी एन्कोडिंग उपलब्ध हैं, जिनके अपने-अपने लाभ हैं जो संदर्भ और डेटा की प्रकृति पर निर्भर करते हैं।
मल्टीपल लीनियर रिग्रेशन की यात्रा शुरू करना आपको निरंतर परिणामों का विश्लेषण और पूर्वानुमान करने के लिए शक्तिशाली उपकरण प्रदान करता है। डेटा एन्कोडिंग तकनीकों में महारत हासिल करके और रिग्रेशन मॉडलों के अंतर्निहित यांत्रिकी को समझकर, आप सूचनात्मक और प्रभावशाली डेटा-प्रेरित निर्णयों के लिए मार्ग प्रशस्त करते हैं।