html
रिग्रेशन में महारत: कार मूल्य भविष्यवाणी के लिए एक व्यापक टेम्प्लेट
कार मूल्य भविष्यवाणी के लिए हमारे विशेषज्ञ-निर्मित टेम्प्लेट के साथ रिग्रेशन विश्लेषण की पूरी क्षमता का उपयोग करें। चाहे आप विभिन्न मॉडलों के साथ प्रयोग कर रहे हों या विभिन्न रिग्रेशन समस्याओं का समाधान कर रहे हों, यह मार्गदर्शिका आपके मशीन लर्निंग वर्कफ़्लो को सुव्यवस्थित करने के लिए चरण-दर-चरण दृष्टिकोण प्रदान करती है।
सामग्री सूची
- मशीन लर्निंग में रिग्रेशन का परिचय
- CarPrice डेटासेट को समझना
- अपने पर्यावरण की सेटिंग करना
-
डेटा पूर्व-संसाधन
- लापता डेटा को संभालना
- फीचर चयन
- श्रेणीबद्ध वेरिएबल्स को एन्कोड करना
- फीचर स्केलिंग
- डेटासेट को विभाजित करना
-
मॉडल बनाना और उनका मूल्यांकन करना
- लीनियर रिग्रेशन
- पॉलीनोमियल रिग्रेशन
- डिसीजन ट्री रिग्रेशन
- रैंडम फॉरेस्ट रिग्रेशन
- AdaBoost रिग्रेशन
- XGBoost रिग्रेशन
- सपोर्ट वेक्टर रिग्रेशन (SVR)
- निष्कर्ष
- रिग्रेशन टेम्प्लेट तक पहुंचना
मशीन लर्निंग में रिग्रेशन का परिचय
रिग्रेशन विश्लेषण मशीन लर्निंग का एक मौलिक घटक है, जो हमें इनपुट फीचर्स के आधार पर सतत परिणामों की भविष्यवाणी करने में सक्षम बनाता है। रियल एस्टेट प्राइसिंग से लेकर स्टॉक मार्केट पूर्वानुमान तक, रिग्रेशन मॉडल विभिन्न उद्योगों में निर्णय-निर्माण प्रक्रियाओं में महत्वपूर्ण भूमिका निभाते हैं। इस लेख में, हम पायथन का उपयोग करके कार के दामों की भविष्यवाणी के लिए विशेष रूप से तैयार एक मजबूत रिग्रेशन टेम्प्लेट बनाने में गहराई से जाएंगे।
CarPrice डेटासेट को समझना
हमारी यात्रा CarPrice डेटासेट के साथ शुरू होती है, जिसे Kaggle से प्राप्त किया गया है। इस डेटासेट में 25 फील्ड्स और लगभग 206 रिकॉर्ड शामिल हैं, जो इसे प्रबंधनीय बनाते हैं फिर भी रिग्रेशन तकनीकों का प्रदर्शन करने के लिए पर्याप्त जटिल हैं।
डेटासेट संरचना
यहाँ डेटासेट का एक स्नैपशॉट है:
car_ID
symboling
CarName
fueltype
aspiration
doornumber
carbody
drivewheel
enginelocation
wheelbase
...
price
1
3
alfa-romero giulia
gas
std
two
convertible
rwd
front
88.6
...
13495.0
2
3
alfa-romero stelvio
gas
std
two
convertible
rwd
front
88.6
...
16500.0
...
...
...
...
...
...
...
...
...
...
...
...
लक्ष्य वेरिएबल price
है, जो कार की कीमत को डॉलर में दर्शाता है।
अपने पर्यावरण की सेटिंग करना
डेटा में प्रवेश करने से पहले, सुनिश्चित करें कि आपके पास आवश्यक पायथन पुस्तकालय स्थापित हैं। हम डेटा मैनिपुलेशन के लिए pandas, संख्यात्मक संचालन के लिए numpy, और मॉडल बनाने और मूल्यांकन के लिए scikit-learn के साथ XGBoost का उपयोग करेंगे।
12345678910111213
import pandas as pdimport numpy as npfrom sklearn.impute import SimpleImputerfrom sklearn.preprocessing import OneHotEncoder, StandardScalerfrom sklearn.compose import ColumnTransformerfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import r2_scorefrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.tree import DecisionTreeRegressorfrom sklearn.ensemble import RandomForestRegressor, AdaBoostRegressorfrom sklearn.svm import SVRimport xgboost as xgb
डेटा पूर्व-संसाधन
लापता डेटा को संभालना
डेटा की स्वच्छता अत्यंत महत्वपूर्ण है। हम संख्यात्मक और श्रेणीबद्ध डेटा के लिए लापता मानों को अलग-अलग संबोधित करेंगे।
संख्यात्मक डेटा
संख्यात्मक कॉलमों के लिए, हम SimpleImputer का उपयोग करेंगे ताकि प्रत्येक कॉलम के माध्य से लापता मानों को भरा जा सके।
123456789
# Identify numerical columnsnumerical_cols = list(np.where((X.dtypes == np.int64) | (X.dtypes == np.float64))[0]) # Initialize imputer for numerical dataimp_mean = SimpleImputer(missing_values=np.nan, strategy='mean') # Fit and transform the dataimp_mean.fit(X.iloc[:, numerical_cols])X.iloc[:, numerical_cols] = imp_mean.transform(X.iloc[:, numerical_cols])
श्रेणीबद्ध डेटा
श्रेणीबद्ध कॉलमों के लिए, हम SimpleImputer का उपयोग करके सबसे सामान्य श्रेणी से लापता मानों को भरेंगे।
123456789
# Identify categorical columnsstring_cols = list(np.where((X.dtypes == object))[0]) # Initialize imputer for categorical dataimp_freq = SimpleImputer(missing_values=np.nan, strategy='most_frequent') # Fit and transform the dataimp_freq.fit(X.iloc[:, string_cols])X.iloc[:, string_cols] = imp_freq.transform(X.iloc[:, string_cols])
फीचर चयन
सभी फीचर्स मॉडल में अर्थपूर्ण योगदान नहीं देते हैं। उदाहरण के लिए, car_ID
कॉलम केवल एक पहचानकर्ता है और भविष्यवाणी मूल्य प्रदान नहीं करता है। हम ऐसे अप्रासंगिक कॉलमों को हटा देंगे।
12
# Drop the car_ID columnX.drop('car_ID', axis=1, inplace=True)
श्रेणीबद्ध वेरिएबल्स को एन्कोड करना
मशीन लर्निंग मॉडल को संख्यात्मक इनपुट की आवश्यकता होती है। हम श्रेणीबद्ध वेरिएबल्स को संख्यात्मक प्रारूप में बदलने के लिए One-Hot Encoding का उपयोग करेंगे।
12345678
# Initialize OneHotEncoder within ColumnTransformercolumnTransformer = ColumnTransformer( [('encoder', OneHotEncoder(), string_cols)], remainder='passthrough') # Transform the dataX = columnTransformer.fit_transform(X)
एन्कोडिंग के बाद, डेटासेट का आकार (205, 24) से (205, 199) में बदल जाता है, जो श्रेणीबद्ध वेरिएबल्स के सफलतापूर्वक रूपांतरण को दर्शाता है।
फीचर स्केलिंग
स्केलिंग सुनिश्चित करती है कि सभी फीचर्स परिणाम में समान रूप से योगदान दें, विशेष रूप से दूरी-आधारित एल्गोरिदम के लिए।
1234567
# Initialize StandardScalersc = StandardScaler(with_mean=False) # Fit and transform the training datasc.fit(X_train)X_train = sc.transform(X_train)X_test = sc.transform(X_test)
डेटासेट को विभाजित करना
हम अपने मॉडल के प्रदर्शन का मूल्यांकन करने के लिए डेटासेट को प्रशिक्षण और परीक्षण सेटों में विभाजित करेंगे।
1234
# Split the dataX_train, X_test, y_train, y_test = train_test_split( X, Y, test_size=0.20, random_state=1)
- प्रशिक्षण सेट: 164 नमूने
- परीक्षण सेट: 41 नमूने
मॉडल बनाना और उनका मूल्यांकन करना
हम विभिन्न रिग्रेशन मॉडल की खोज करेंगे, प्रत्येक का R² स्कोर का उपयोग करके मूल्यांकन करेंगे।
1. लीनियर रिग्रेशन
सतत मानों की भविष्यवाणी के लिए एक सीधा-सादा दृष्टिकोण।
1234
model = LinearRegression()model.fit(X_train, y_train)y_pred = model.predict(X_test)print(r2_score(y_test, y_pred)) # Output: 0.0974
R² स्कोर इंगित करता है कि रैखिक मॉडल लगभग 9.74% विचलन को समझाता है।
2. पॉलीनोमियल रिग्रेशन
पॉलीनोमियल फीचर्स जोड़कर गैर-रेखीय संबंधों को कैप्चर करता है।
12345678
poly = PolynomialFeatures(degree=2)X_train_poly = poly.fit_transform(X_train)X_test_poly = poly.transform(X_test) model = LinearRegression()model.fit(X_train_poly, y_train)y_pred = model.predict(X_test_poly)print(r2_score(y_test, y_pred)) # Output: -0.4531
नकारात्मक R² स्कोर ओवरफिटिंग या अनुचित डिग्री चयन का सुझाव देता है।
3. डिसीजन ट्री रिग्रेशन
एक गैर-रेखीय मॉडल जो डेटा को उपसमूहों में विभाजित करता है।
1234
model = DecisionTreeRegressor(max_depth=4)model.fit(X_train, y_train)y_pred = model.predict(X_test)print(r2_score(y_test, y_pred)) # Output: 0.8840
काफी अधिक R² स्कोर, बेहतर प्रदर्शन को इंगित करता है।
4. रैंडम फॉरेस्ट रिग्रेशन
एक ансамбल विधि जो कई डिसीजन ट्री बनाती है।
1234
model = RandomForestRegressor(n_estimators=25, random_state=10)model.fit(X_train, y_train)y_pred = model.predict(X_test)print(r2_score(y_test, y_pred)) # Output: 0.9108
91.08% का प्रभावशाली R² स्कोर, मजबूत प्रदर्शन को प्रदर्शित करता है।
5. AdaBoost रिग्रेशन
बूस्टिंग तकनीक जो कमजोर शिक्षकों को मजबूत भविष्यवक्ता में जोड़ती है।
1234
model = AdaBoostRegressor(random_state=0, n_estimators=100)model.fit(X_train, y_train)y_pred = model.predict(X_test)print(r2_score(y_test, y_pred)) # Output: 0.8807
88.07% का R² स्कोर हासिल करता है।
6. XGBoost रिग्रेशन
ग्रेडिएंट बूस्टिंग का एक स्केलेबल और कुशल कार्यान्वयन।
12345678910
model = xgb.XGBRegressor( n_estimators=100, reg_lambda=1, gamma=0, max_depth=3, learning_rate=0.05)model.fit(X_train, y_train)y_pred = model.predict(X_test)print(r2_score(y_test, y_pred)) # Output: 0.8947
89.47% का R² स्कोर प्रदान करता है।
7. सपोर्ट वेक्टर रिग्रेशन (SVR)
उच्च-आयामी स्थानों में प्रभावी, SVR गैर-रेखीय डेटा के लिए केर्नल ट्रिक्स का उपयोग करता है।
1234
model = SVR()model.fit(X_train, y_train)y_pred = model.predict(X_test)print(r2_score(y_test, y_pred)) # Output: -0.0271
नकारात्मक R² स्कोर खराब प्रदर्शन को इंगित करता है, संभवतः पैरामीटर ट्यूनिंग की आवश्यकता के कारण।
निष्कर्ष
यह व्यापक रिग्रेशन टेम्प्लेट रिग्रेशन समस्याओं को संभालने के लिए एक प्रणालीबद्ध दृष्टिकोण प्रदान करता है, डेटा पूर्व-संसाधन से लेकर मॉडल मूल्यांकन तक। जबकि सरल मॉडल जैसे लीनियर रिग्रेशन कम रह सकते हैं, रैंडम फॉरेस्ट और XGBoost जैसे ансамбल विधियाँ कार के दामों की भविष्यवाणी में बेहतर प्रदर्शन दर्शाती हैं। इस टेम्प्लेट को आपके विशिष्ट डेटासेट के अनुरूप बनाना भविष्यवाणीक सटीकता बढ़ा सकता है और आपके मशीन लर्निंग प्रोजेक्ट्स को सरल बना सकता है।
रिग्रेशन टेम्प्लेट तक पहुंचना
इस रिग्रेशन वर्कफ़्लो को लागू करने के लिए तैयार हैं? पूरा Jupyter Notebook और CarPrice.csv डेटासेट यहाँ एक्सेस करें। इन संसाधनों का उपयोग करके अपने मशीन लर्निंग प्रोजेक्ट्स को शुरू करें और आसानी से सटीक भविष्यवाणीक मॉडल प्राप्त करें।
आज ही अपनी रिग्रेशन विश्लेषण कौशल को बढ़ाएं और डेटा-चालित निर्णय-निर्माण में नए अवसर खोलें!