मल्टीपल फीचर्स के साथ पॉलिनोमियल रिग्रेशन में महारत हासिल करना: एक व्यापक मार्गदर्शिका
मशीन लर्निंग के क्षेत्र में, रिग्रेशन विश्लेषण सतत परिणामों की भविष्यवाणी के लिए एक मौलिक उपकरण के रूप में कार्य करता है। विभिन्न रिग्रेशन तकनीकों में, पॉलिनोमियल रिग्रेशन जटिल, गैर-रेखीय संबंधों को मॉडल करने की अपनी क्षमता के लिए अलग पहचानता है। यह व्यापक मार्गदर्शिका पॉलिनोमियल रिग्रेशन के साथ मल्टीपल फीचर्स में गहराई से जाती है, वीडियो ट्रांस्क्रिप्ट, पावरपॉइंट प्रस्तुतियों और जुपिटर नोटबुक्स से अंतर्दृष्टियों का उपयोग करके एक संपूर्ण समझ और व्यावहारिक कार्यान्वयन प्रदान करती है।
विषय सूची
- रिग्रेशन मॉडल्स का परिचय
- रेखीय बनाम बहुरेखीय रिग्रेशन
- पॉलिनोमियल रिग्रेशन क्या है?
- पॉलिनोमियल रिग्रेशन क्यों चुनें?
- पॉलिनोमियल रिग्रेशन के लिए प्रीप्रोसेसिंग कदम
- पॉलिनोमियल रिग्रेशन मॉडल बनाना
- सही डिग्री चुनना: बायस और वेरिएंस का संतुलन
- पायथन में व्यावहारिक कार्यान्वयन
- मॉडल का मूल्यांकन करना
- पॉलिनोमियल रिग्रेशन में ओवरफिटिंग से बचना
- निष्कर्ष
रिग्रेशन मॉडल्स का परिचय
रिग्रेशन विश्लेषण एक सांख्यिकीय विधि है जिसका उपयोग परिवर्तनीयों के बीच संबंधों का अनुमान लगाने के लिए किया जाता है। यह पूर्वानुमानात्मक मॉडलिंग में महत्वपूर्ण भूमिका निभाता है, जिससे हम एक आश्रित चर की भविष्यवाणी एक या अधिक स्वतंत्र चर के आधार पर कर सकते हैं। सबसे सामान्य प्रकार हैं:
- रेखीय रिग्रेशन
- बहुरेखीय रिग्रेशन
- पॉलिनोमियल रिग्रेशन
प्रत्येक के बारीकियों को समझना आपके पूर्वानुमानात्मक मॉडलों की सटीकता और प्रभावशीलता को काफी हद तक बढ़ा सकता है।
रेखीय बनाम बहुरेखीय रिग्रेशन
पॉलिनोमियल रिग्रेशन में गहरे जाने से पहले, रेखीय रिग्रेशन और बहुरेखीय रिग्रेशन के बीच अंतर करना आवश्यक है:
-
रेखीय रिग्रेशन: एक एकल स्वतंत्र चर और एक आश्रित चर के बीच संबंध को रेखीय समीकरण फिट करके मॉडल करता है।
समीकरण:
\[ Y = B_0 + B_1X_1 \]
-
बहुरेखीय रिग्रेशन: रेखीय रिग्रेशन को विस्तारित करता है ताकि यह कई स्वतंत्र चर और एक आश्रित चर के बीच संबंधों को मॉडल कर सके।
समीकरण:
\[ Y = B_0 + B_1X_1 + B_2X_2 + B_3X_3 + \ldots + B_nX_n \]
हालांकि दोनों शक्तिशाली हैं, वे रेखीय संबंधों को ही मॉडल करने तक सीमित हैं।
पॉलिनोमियल रिग्रेशन क्या है?
पॉलिनोमियल रिग्रेशन रेखीय और बहुरेखीय रिग्रेशन का एक विस्तार है जो आश्रित चर और स्वतंत्र चर के बीच संबंध को \( n \)थ-डिग्री के बहुपद के रूप में मॉडल करता है।
समीकरण:
\[ Y = B_0 + B_1X + B_2X^2 + B_3X^3 + \ldots + B_nX^n \]
नाम के बावजूद, पॉलिनोमियल रिग्रेशन रेखीय रिग्रेशन का एक प्रकार है क्योंकि गुणांक \( B_i \) रेखीय होते हैं।
पॉलिनोमियल रिग्रेशन क्यों चुनें?
वास्तविक दुनिया के डेटा में अक्सर गैर-रेखीय संबंध दिखाई देते हैं। पॉलिनोमियल रिग्रेशन इन जटिलताओं को कैप्चर करने में लचीलापन प्रदान करता है क्योंकि यह बहुपद पदों को शामिल करता है, जिससे मॉडल डेटा में वक्रता को फिट कर सकता है।
लाभ:
- गैर-रेखीय संबंधों को कैप्चर करता है।
- जटिल डेटा प्रवृत्तियों के लिए बेहतर फिट प्रदान करता है।
- जब रेखीय मॉडल कम पड़ते हैं तब मॉडल का प्रदर्शन बढ़ाता है।
पॉलिनोमियल रिग्रेशन के लिए प्रीप्रोसेसिंग कदम
प्रभावी प्रीप्रोसेसिंग एक मजबूत रिग्रेशन मॉडल की नींव रखती है। यहां आवश्यक कदम हैं:
1. डेटा आयात करना
डेटासेट आयात करके शुरू करें। उदाहरण के लिए, हम Kaggle से एक बीमा डेटासेट का उपयोग करेंगे।
1 2 3 4 5 6 7 |
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns sns.set() data = pd.read_csv('insurance.csv') |
2. गायब डेटा को संभालना
सुनिश्चित करें कि आपका डेटासेट गायब मूल्यों से मुक्त है। पॉलिनोमियल रिग्रेशन स्वाभाविक रूप से गायब डेटा को संभालता नहीं है।
1 2 |
data.isnull().sum() # Handle missing values if any |
ध्यान दें: सतत मानों की भविष्यवाणी करने वाली रिग्रेशन समस्याओं में, असंतुलित डेटा को संभालने की आवश्यकता नहीं है क्योंकि कोई श्रेणी असंतुलन नहीं होता है।
3. फीचर चयन और एन्कोडिंग
प्रासंगिक फीचर्स की पहचान करें और श्रेणीकृत परिवर्तनीयों को एन्कोड करें।
लेबल एन्कोडिंग:
श्रेणीकृत लेबलों को संख्यात्मक रूप में परिवर्तित करता है।
1 2 3 4 5 |
from sklearn import preprocessing le = preprocessing.LabelEncoder() X['sex'] = le.fit_transform(X['sex']) X['smoker'] = le.fit_transform(X['smoker']) |
वन-हॉट एन्कोडिंग:
श्रेणीकृत परिवर्तनीयों को उस रूप में परिवर्तित करता है जिसे एमएल एल्गोरिदम बेहतर भविष्यवाणी कर सकें।
1 2 3 4 5 |
from sklearn.preprocessing import OneHotEncoder from sklearn.compose import ColumnTransformer columnTransformer = ColumnTransformer([('encoder', OneHotEncoder(), [5])], remainder='passthrough') X = columnTransformer.fit_transform(X) |
4. फीचर स्केलिंग
पॉलिनोमियल फीचर्स बड़े मानों की ओर ले जा सकते हैं, जिससे गणनात्मक समस्याएं हो सकती हैं और मॉडल के प्रदर्शन पर असर पड़ सकता है। स्केलिंग यह सुनिश्चित करती है कि फीचर्स समान रूप से योगदान करें।
1 2 3 4 5 6 |
from sklearn import preprocessing sc = preprocessing.StandardScaler() sc.fit(X_train) X_train = sc.transform(X_train) X_test = sc.transform(X_test) |
पॉलिनोमियल रिग्रेशन मॉडल बनाना
एक बार प्रीप्रोसेसिंग पूरी हो जाए, मॉडल बनाने में निम्नलिखित कदम शामिल होते हैं:
- डेटासेट को विभाजित करना: डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करें।
- फीचर्स को परिवर्तित करना: पॉलिनोमियल फीचर्स उत्पन्न करें।
- मॉडल को प्रशिक्षण देना: परिवर्तित फीचर्स पर रिग्रेशन मॉडल फिट करें।
- पूर्वानुमान करना: प्रशिक्षित मॉडल का उपयोग करके पूर्वानुमान करें।
- प्रदर्शन का मूल्यांकन करना: मॉडल की सटीकता का आकलन करें।
सही डिग्री चुनना: बायस और वेरिएंस का संतुलन
पॉलिनोमियल की डिग्री मॉडल की लचीलापन को निर्धारित करती है:
- निम्न डिग्री (उदा., 2): डेटा की जटिलता को पकड़ने में विफल हो सकता है, जिससे अंडरफिटिंग हो सकता है।
- उच्च डिग्री: ओवरफिटिंग कर सकता है, मौलिक पैटर्न के बजाय शोर को मॉडल करता है।
उचित डिग्री का चयन बायस (बहुत ही सरल मॉडलों के कारण त्रुटि) और वेरिएंस (बहुत ही जटिल मॉडलों के कारण त्रुटि) के बीच संतुलन बनाए रखने के लिए महत्वपूर्ण है।
पायथन में व्यावहारिक कार्यान्वयन
आइए एक जुपिटर नोटबुक का उपयोग करके चरण-दर-चरण कार्यान्वयन करें।
जुपिटर नोटबुक का उपयोग करते हुए चरण-दर-चरण मार्गदर्शिका
1. लाइब्रेरी और डेटासेट आयात करना
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.preprocessing import PolynomialFeatures from sklearn.metrics import r2_score import matplotlib.pyplot as plt import seaborn as sns sns.set() # Importing the dataset data = pd.read_csv('insurance.csv') X = data.iloc[:, :-1] Y = data.iloc[:, -1] |
2. लेबल एन्कोडिंग
1 2 3 4 5 |
from sklearn import preprocessing le = preprocessing.LabelEncoder() X['sex'] = le.fit_transform(X['sex']) X['smoker'] = le.fit_transform(X['smoker']) |
3. वन-हॉट एन्कोडिंग
1 2 3 4 5 |
from sklearn.preprocessing import OneHotEncoder from sklearn.compose import ColumnTransformer columnTransformer = ColumnTransformer([('encoder', OneHotEncoder(), [5])], remainder='passthrough') X = columnTransformer.fit_transform(X) |
4. डेटासेट को विभाजित करना
1 |
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.20, random_state=1) |
5. फीचर स्केलिंग
1 2 3 4 5 6 |
from sklearn import preprocessing sc = preprocessing.StandardScaler() sc.fit(X_train) X_train = sc.transform(X_train) X_test = sc.transform(X_test) |
6. पॉलिनोमियल रिग्रेशन मॉडल बनाना
1 2 3 4 5 6 7 8 |
from sklearn.linear_model import LinearRegression from sklearn.preprocessing import PolynomialFeatures model = LinearRegression() poly = PolynomialFeatures(degree=2) # You can experiment with different degrees X_train_poly = poly.fit_transform(X_train) model.fit(X_train_poly, y_train) |
7. पूर्वानुमान करना
1 2 |
X_test_poly = poly.fit_transform(X_test) y_pred = model.predict(X_test_poly) |
8. मॉडल का मूल्यांकन करना
1 2 3 4 5 6 7 8 |
# Creating a comparison DataFrame comparison = pd.DataFrame() comparison['Actual'] = y_test comparison['Predicted'] = y_pred # Displaying R² Score r2 = r2_score(y_test, y_pred) print(f"R² Score: {r2:.2f}") # Output: R² Score: 0.86 |
व्याख्या: 0.86 के R² स्कोर का अर्थ है कि आश्रित चर के वेरिएंस का लगभग 86% स्वतंत्र चर से भविष्यवाणी किया जा सकता है।
मॉडल का मूल्यांकन करना
एक रिग्रेशन मॉडल का मूल्यांकन मुख्य रूप से यह आकलन करने में शामिल होता है कि यह लक्ष्य चर की कितनी अच्छी तरह से भविष्यवाणी करता है। सामान्य मेट्रिक्स में शामिल हैं:
- R² स्कोर: यह दर्शाता है कि आश्रित चर के वेरिएंस में से कितनी प्रतिशत स्वतंत्र चर द्वारा व्याख्यायित किया गया है।
- मीन स्क्वेर्ड एरर (MSE): त्रुटियों के वर्गों के औसत को मापता है।
हमारे कार्यान्वयन में, पॉलिनोमियल फीचर्स को शामिल करने के बाद R² स्कोर 0.76 से बढ़कर 0.86 हो गया, जिससे मॉडल के प्रदर्शन में सुधार हुआ।
पॉलिनोमियल रिग्रेशन में ओवरफिटिंग से बचना
हालांकि पॉलिनोमियल फीचर्स की डिग्री बढ़ाने से मॉडल की फिटिंग में सुधार हो सकता है, यह ओवरफिटिंग के जोखिम को भी बढ़ाता है—जहां मॉडल मौलिक पैटर्न के बजाय शोर को कैप्चर करता है। ओवरफिटिंग को कम करने के लिए:
- क्रॉस-वैलिडेशन: मॉडल की सामान्यीकरण क्षमता सुनिश्चित करने के लिए k-fold क्रॉस-वैलिडेशन जैसी तकनीकों का उपयोग करें।
- रेगुलराइजेशन: बड़े गुणांक को दंडित करने के लिए रेगुलराइजेशन विधियों (जैसे, रिज, लासो) को लागू करें।
- फीचर चयन: फीचर्स की संख्या को सबसे प्रासंगिक फीचर्स तक सीमित रखें।
पॉलिनोमियल फीचर्स की डिग्री का संतुलन बनाए रखना महत्वपूर्ण है ताकि मॉडल न केवल सटीक हो बल्कि सामान्यीकृत भी हो।
निष्कर्ष
पॉलिनोमियल रिग्रेशन बहुरेखीय मॉडलों का एक शक्तिशाली विस्तार है, जो डेटा में जटिल, गैर-रेखीय संबंधों को कैप्चर करने में सक्षम है। डेटा को सावधानीपूर्वक प्रीप्रोसेसिंग, उपयुक्त पॉलिनोमियल डिग्री का चयन, और मॉडल के प्रदर्शन का मूल्यांकन करके, कोई भी पॉलिनोमियल रिग्रेशन की पूरी क्षमता का उपयोग कर सकता है।
चाहे आप बीमा खर्चों, आवास मूल्य या किसी अन्य सतत परिणाम की भविष्यवाणी कर रहे हों, पॉलिनोमियल रिग्रेशन में महारत हासिल करने से आपके मशीन लर्निंग शस्त्रागार में एक बहुमुखी उपकरण जोड़ता है।
मुख्य निष्कर्ष:
- पॉलिनोमियल रिग्रेशन रेखीय मॉडलों का विस्तार है ताकि गैर-रेखीय पैटर्न को कैप्चर किया जा सके।
- सही प्रीप्रोसेसिंग, जिसमें एन्कोडिंग और स्केलिंग शामिल हैं, महत्वपूर्ण है।
- सही डिग्री चुनने से मॉडल की सटीकता का संतुलन बनता है और ओवरफिटिंग से बचा जा सकता है।
- R² जैसी मूल्यांकन मेट्रिक्स मॉडल के प्रदर्शन की अंतर्दृष्टि प्रदान करती हैं।
अपने पूर्वानुमानात्मक मॉडलिंग प्रयासों को ऊंचाई देने और अपने डेटा से गहरी अंतर्दृष्टि प्राप्त करने के लिए पॉलिनोमियल रिग्रेशन को अपनाएँ।