मशीन लर्निंग रियल एस्टेट सहित विभिन्न उद्योगों को बदल रही है। एक सामान्य कार्य विभिन्न विशेषताओं जैसे शयनकक्षों की संख्या, स्नानघर, वर्ग फुटेज और स्थान के आधार पर घर की कीमतों की भविष्यवाणी करना है। इस लेख में, हम यह पता लगाएंगे कि घर की कीमतों की भविष्यवाणी करने के लिए स्किकिट-लर्न का उपयोग करके एक मशीन लर्निंग मॉडल कैसे बनाया जाए, जिसमें डेटा प्रीप्रोसेसिंग से लेकर मॉडल परिनियोजन तक सभी पहलुओं को शामिल किया जाए।
स्किकिट-लर्न पायथन में मशीन लर्निंग के लिए सबसे व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी में से एक है। यह डेटा विश्लेषण और मॉडलिंग के लिए सरल और कुशल उपकरण प्रदान करता है। चाहे आप वर्गीकरण, प्रतिगमन, क्लस्टरिंग, या आयामीता में कमी से निपट रहे हों, स्किकिट-लर्न आपको मजबूत मशीन लर्निंग मॉडल बनाने में मदद करने के लिए उपयोगिताओं का एक व्यापक सेट प्रदान करता है।
इस गाइड में, हम घर की कीमतों की भविष्यवाणी करने के लिए स्किकिट-लर्न का उपयोग करके एक रिग्रेशन मॉडल बनाएंगे। आइए प्रक्रिया के प्रत्येक चरण पर चलें।
वर्तमान कार्य किसी घर की विशेषताओं के आधार पर उसकी कीमत का अनुमान लगाना है, जैसे:
यह एक पर्यवेक्षित शिक्षण समस्या है जहां लक्ष्य चर (घर की कीमत) निरंतर है, जिससे यह एक प्रतिगमन कार्य बन जाता है। स्किकिट-लर्न रिग्रेशन के लिए विभिन्न प्रकार के एल्गोरिदम प्रदान करता है, जैसे कि लीनियर रिग्रेशन और रैंडम फ़ॉरेस्ट, जिसका उपयोग हम इस प्रोजेक्ट में करेंगे।
आप या तो कागल हाउस प्राइस डेटासेट जैसे वास्तविक दुनिया के डेटासेट का उपयोग कर सकते हैं या सार्वजनिक एपीआई से अपना खुद का डेटा इकट्ठा कर सकते हैं।
आपका डेटा कैसा दिखेगा इसका एक नमूना यहां दिया गया है:
बेडरूम | बाथरूम | क्षेत्रफल (वर्गफुट) | जगह | मूल्य ($) |
---|---|---|---|---|
3 | 2 | 1500 | बोस्टन | 300,000 |
4 | 3 | 2000 | सिएटल | 500,000 |
यहां लक्ष्य चर मूल्य है।
मशीन लर्निंग मॉडल में डेटा फीड करने से पहले, हमें इसे प्रीप्रोसेस करना होगा। इसमें लुप्त मानों को संभालना, श्रेणीबद्ध विशेषताओं को एन्कोड करना और डेटा को स्केल करना शामिल है।
वास्तविक दुनिया के डेटासेट में डेटा गायब होना आम बात है। हम या तो लुप्त मानों को माध्यिका जैसे सांख्यिकीय माप से भर सकते हैं या लुप्त डेटा वाली पंक्तियों को छोड़ सकते हैं:
data.fillna(data.median(), inplace=True)
चूंकि मशीन लर्निंग मॉडल को संख्यात्मक इनपुट की आवश्यकता होती है, इसलिए हमें स्थान जैसी श्रेणीगत विशेषताओं को संख्याओं में बदलने की आवश्यकता है। लेबल एन्कोडिंग प्रत्येक श्रेणी के लिए एक अद्वितीय नंबर निर्दिष्ट करता है:
from sklearn.preprocessing import LabelEncoder encoder = LabelEncoder() data['Location'] = encoder.fit_transform(data['Location'])
यह सुनिश्चित करने के लिए क्षेत्र और मूल्य जैसी सुविधाओं को मापना महत्वपूर्ण है कि वे समान पैमाने पर हैं, विशेष रूप से फीचर परिमाण के प्रति संवेदनशील एल्गोरिदम के लिए। यहां बताया गया है कि हम स्केलिंग कैसे लागू करते हैं:
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X)
सभी सुविधाएं लक्ष्य चर में समान रूप से योगदान नहीं करती हैं। फ़ीचर चयन सबसे महत्वपूर्ण विशेषताओं की पहचान करने में मदद करता है, जो मॉडल के प्रदर्शन में सुधार करता है और ओवरफिटिंग को कम करता है।
इस प्रोजेक्ट में, हम लक्ष्य चर के साथ उनके सहसंबंध के आधार पर शीर्ष 5 सुविधाओं का चयन करने के लिए SelectKBest का उपयोग करते हैं:
from sklearn.feature_selection import SelectKBest, f_regression selector = SelectKBest(score_func=f_regression, k=5) X_new = selector.fit_transform(X, y)
अब जब हमने डेटा को प्रीप्रोसेस कर लिया है और सर्वोत्तम सुविधाओं का चयन कर लिया है, तो मॉडल को प्रशिक्षित करने का समय आ गया है। हम दो प्रतिगमन एल्गोरिदम का उपयोग करेंगे: रैखिक प्रतिगमन और रैंडम फ़ॉरेस्ट।
रैखिक प्रतिगमन डेटा के माध्यम से एक सीधी रेखा में फिट बैठता है, अनुमानित और वास्तविक मूल्यों के बीच अंतर को कम करता है:
from sklearn.linear_model import LinearRegression linear_model = LinearRegression() linear_model.fit(X_train, y_train)
रैंडम फ़ॉरेस्ट एक सामूहिक विधि है जो सटीकता में सुधार और ओवरफिटिंग को कम करने के लिए कई निर्णय वृक्षों का उपयोग करती है और उनके परिणामों का औसत करती है:
from sklearn.ensemble import RandomForestRegressor forest_model = RandomForestRegressor(n_estimators=100) forest_model.fit(X_train, y_train)
हमारे मॉडल कितनी अच्छी तरह सामान्यीकृत होते हैं, इसका मूल्यांकन करने के लिए, हम डेटा को प्रशिक्षण और परीक्षण सेटों में विभाजित करते हैं:
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X_new, y, test_size=0.2, random_state=42)
मॉडलों को प्रशिक्षित करने के बाद, हमें मीन स्क्वेयर्ड एरर (MSE) और R-स्क्वायर (R²) जैसे मेट्रिक्स का उपयोग करके उनके प्रदर्शन का मूल्यांकन करने की आवश्यकता है।
एमएसई अनुमानित और वास्तविक मूल्यों के बीच औसत वर्ग अंतर की गणना करता है। कम एमएसई बेहतर प्रदर्शन का संकेत देता है:
from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_test, y_pred)
R² हमें बताता है कि मॉडल लक्ष्य चर में भिन्नता को कितनी अच्छी तरह समझाता है। 1 के मान का अर्थ है सही भविष्यवाणी:
from sklearn.metrics import r2_score r2 = r2_score(y_test, y_pred)
इन मेट्रिक्स का उपयोग करके लीनियर रिग्रेशन और रैंडम फ़ॉरेस्ट मॉडल के प्रदर्शन की तुलना करें।
मॉडल के प्रदर्शन को और बेहतर बनाने के लिए, हम हाइपरपैरामीटर को ठीक कर सकते हैं। रैंडम फ़ॉरेस्ट के लिए, n_estimator (पेड़ों की संख्या) और max_depth (पेड़ों की अधिकतम गहराई) जैसे हाइपरपैरामीटर प्रदर्शन को महत्वपूर्ण रूप से प्रभावित कर सकते हैं।
हाइपरपैरामीटर अनुकूलन के लिए ग्रिडसर्चसीवी का उपयोग कैसे करें:
from sklearn.model_selection import GridSearchCV param_grid = { 'n_estimators': [50, 100, 200], 'max_depth': [None, 10, 20] } grid_search = GridSearchCV(RandomForestRegressor(), param_grid, cv=5) grid_search.fit(X_train, y_train) best_model = grid_search.best_estimator_
एक बार जब आप मॉडल को प्रशिक्षित और ट्यून कर लेते हैं, तो अगला चरण तैनाती है। आप एक सरल वेब एप्लिकेशन बनाने के लिए फ्लास्क का उपयोग कर सकते हैं जो भविष्यवाणियां प्रस्तुत करता है।
घर की कीमत की भविष्यवाणी करने के लिए यहां एक बुनियादी फ्लास्क ऐप है:
from flask import Flask, request, jsonify import joblib app = Flask(__name__) # Load the trained model model = joblib.load('best_model.pkl') @app.route('/predict', methods=['POST']) def predict(): data = request.json prediction = model.predict([data['features']]) return jsonify({'predicted_price': prediction[0]}) if __name__ == '__main__': app.run()
joblib का उपयोग करके प्रशिक्षित मॉडल को सहेजें:
import joblib joblib.dump(best_model, 'best_model.pkl')
इस तरह, आप एपीआई को अनुरोध भेजकर पूर्वानुमान लगा सकते हैं।
इस परियोजना में, हमने घर की कीमतों की भविष्यवाणी करने के लिए स्किकिट-लर्न का उपयोग करके मशीन लर्निंग मॉडल बनाने की पूरी प्रक्रिया का पता लगाया। डेटा प्रीप्रोसेसिंग और फीचर चयन से लेकर मॉडल प्रशिक्षण, मूल्यांकन और तैनाती तक, प्रत्येक चरण को व्यावहारिक कोड उदाहरणों के साथ कवर किया गया था।
चाहे आप मशीन लर्निंग में नए हों या वास्तविक दुनिया की परियोजनाओं में स्किकिट-लर्न लागू करना चाह रहे हों, यह मार्गदर्शिका एक व्यापक वर्कफ़्लो प्रदान करती है जिसे आप विभिन्न प्रतिगमन कार्यों के लिए अनुकूलित कर सकते हैं।
अपने मॉडल के प्रदर्शन और सटीकता को बढ़ाने के लिए विभिन्न मॉडलों, डेटासेट और तकनीकों के साथ बेझिझक प्रयोग करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3