"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्किकिट-लर्न के साथ घर की कीमतों की भविष्यवाणी: एक संपूर्ण गाइड

स्किकिट-लर्न के साथ घर की कीमतों की भविष्यवाणी: एक संपूर्ण गाइड

2024-11-02 को प्रकाशित
ब्राउज़ करें:784

Predicting House Prices with Scikit-learn: A Complete Guide

मशीन लर्निंग रियल एस्टेट सहित विभिन्न उद्योगों को बदल रही है। एक सामान्य कार्य विभिन्न विशेषताओं जैसे शयनकक्षों की संख्या, स्नानघर, वर्ग फुटेज और स्थान के आधार पर घर की कीमतों की भविष्यवाणी करना है। इस लेख में, हम यह पता लगाएंगे कि घर की कीमतों की भविष्यवाणी करने के लिए स्किकिट-लर्न का उपयोग करके एक मशीन लर्निंग मॉडल कैसे बनाया जाए, जिसमें डेटा प्रीप्रोसेसिंग से लेकर मॉडल परिनियोजन तक सभी पहलुओं को शामिल किया जाए।

विषयसूची

  1. स्किकिट-लर्न का परिचय
  2. समस्या परिभाषा
  3. डेटा संग्रहण
  4. डेटा प्रीप्रोसेसिंग
  5. सुविधा चयन
  6. मॉडल प्रशिक्षण
  7. मॉडल मूल्यांकन
  8. मॉडल ट्यूनिंग (हाइपरपैरामीटर ऑप्टिमाइज़ेशन)
  9. मॉडल परिनियोजन
  10. निष्कर्ष

1. स्किकिट-लर्न का परिचय

स्किकिट-लर्न पायथन में मशीन लर्निंग के लिए सबसे व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी में से एक है। यह डेटा विश्लेषण और मॉडलिंग के लिए सरल और कुशल उपकरण प्रदान करता है। चाहे आप वर्गीकरण, प्रतिगमन, क्लस्टरिंग, या आयामीता में कमी से निपट रहे हों, स्किकिट-लर्न आपको मजबूत मशीन लर्निंग मॉडल बनाने में मदद करने के लिए उपयोगिताओं का एक व्यापक सेट प्रदान करता है।

इस गाइड में, हम घर की कीमतों की भविष्यवाणी करने के लिए स्किकिट-लर्न का उपयोग करके एक रिग्रेशन मॉडल बनाएंगे। आइए प्रक्रिया के प्रत्येक चरण पर चलें।


2. समस्या परिभाषा

वर्तमान कार्य किसी घर की विशेषताओं के आधार पर उसकी कीमत का अनुमान लगाना है, जैसे:

  • बेडरूम की संख्या
  • स्नानघरों की संख्या
  • क्षेत्रफल (वर्ग फुट में)
  • जगह

यह एक पर्यवेक्षित शिक्षण समस्या है जहां लक्ष्य चर (घर की कीमत) निरंतर है, जिससे यह एक प्रतिगमन कार्य बन जाता है। स्किकिट-लर्न रिग्रेशन के लिए विभिन्न प्रकार के एल्गोरिदम प्रदान करता है, जैसे कि लीनियर रिग्रेशन और रैंडम फ़ॉरेस्ट, जिसका उपयोग हम इस प्रोजेक्ट में करेंगे।


3. डेटा संग्रहण

आप या तो कागल हाउस प्राइस डेटासेट जैसे वास्तविक दुनिया के डेटासेट का उपयोग कर सकते हैं या सार्वजनिक एपीआई से अपना खुद का डेटा इकट्ठा कर सकते हैं।

आपका डेटा कैसा दिखेगा इसका एक नमूना यहां दिया गया है:

बेडरूम बाथरूम क्षेत्रफल (वर्गफुट) जगह मूल्य ($)
3 2 1500 बोस्टन 300,000
4 3 2000 सिएटल 500,000

यहां लक्ष्य चर मूल्य है।


4. डेटा प्रीप्रोसेसिंग

मशीन लर्निंग मॉडल में डेटा फीड करने से पहले, हमें इसे प्रीप्रोसेस करना होगा। इसमें लुप्त मानों को संभालना, श्रेणीबद्ध विशेषताओं को एन्कोड करना और डेटा को स्केल करना शामिल है।

गुम डेटा को संभालना

वास्तविक दुनिया के डेटासेट में डेटा गायब होना आम बात है। हम या तो लुप्त मानों को माध्यिका जैसे सांख्यिकीय माप से भर सकते हैं या लुप्त डेटा वाली पंक्तियों को छोड़ सकते हैं:

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. फीचर चयन

सभी सुविधाएं लक्ष्य चर में समान रूप से योगदान नहीं करती हैं। फ़ीचर चयन सबसे महत्वपूर्ण विशेषताओं की पहचान करने में मदद करता है, जो मॉडल के प्रदर्शन में सुधार करता है और ओवरफिटिंग को कम करता है।

इस प्रोजेक्ट में, हम लक्ष्य चर के साथ उनके सहसंबंध के आधार पर शीर्ष 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)

6. मॉडल प्रशिक्षण

अब जब हमने डेटा को प्रीप्रोसेस कर लिया है और सर्वोत्तम सुविधाओं का चयन कर लिया है, तो मॉडल को प्रशिक्षित करने का समय आ गया है। हम दो प्रतिगमन एल्गोरिदम का उपयोग करेंगे: रैखिक प्रतिगमन और रैंडम फ़ॉरेस्ट

रेखीय प्रतिगमन

रैखिक प्रतिगमन डेटा के माध्यम से एक सीधी रेखा में फिट बैठता है, अनुमानित और वास्तविक मूल्यों के बीच अंतर को कम करता है:

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)

7. मॉडल मूल्यांकन

मॉडलों को प्रशिक्षित करने के बाद, हमें मीन स्क्वेयर्ड एरर (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)

इन मेट्रिक्स का उपयोग करके लीनियर रिग्रेशन और रैंडम फ़ॉरेस्ट मॉडल के प्रदर्शन की तुलना करें।


8. मॉडल ट्यूनिंग (हाइपरपैरामीटर ऑप्टिमाइजेशन)

मॉडल के प्रदर्शन को और बेहतर बनाने के लिए, हम हाइपरपैरामीटर को ठीक कर सकते हैं। रैंडम फ़ॉरेस्ट के लिए, 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_

9. मॉडल परिनियोजन

एक बार जब आप मॉडल को प्रशिक्षित और ट्यून कर लेते हैं, तो अगला चरण तैनाती है। आप एक सरल वेब एप्लिकेशन बनाने के लिए फ्लास्क का उपयोग कर सकते हैं जो भविष्यवाणियां प्रस्तुत करता है।

घर की कीमत की भविष्यवाणी करने के लिए यहां एक बुनियादी फ्लास्क ऐप है:

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')

इस तरह, आप एपीआई को अनुरोध भेजकर पूर्वानुमान लगा सकते हैं।


10. निष्कर्ष

इस परियोजना में, हमने घर की कीमतों की भविष्यवाणी करने के लिए स्किकिट-लर्न का उपयोग करके मशीन लर्निंग मॉडल बनाने की पूरी प्रक्रिया का पता लगाया। डेटा प्रीप्रोसेसिंग और फीचर चयन से लेकर मॉडल प्रशिक्षण, मूल्यांकन और तैनाती तक, प्रत्येक चरण को व्यावहारिक कोड उदाहरणों के साथ कवर किया गया था।

चाहे आप मशीन लर्निंग में नए हों या वास्तविक दुनिया की परियोजनाओं में स्किकिट-लर्न लागू करना चाह रहे हों, यह मार्गदर्शिका एक व्यापक वर्कफ़्लो प्रदान करती है जिसे आप विभिन्न प्रतिगमन कार्यों के लिए अनुकूलित कर सकते हैं।

अपने मॉडल के प्रदर्शन और सटीकता को बढ़ाने के लिए विभिन्न मॉडलों, डेटासेट और तकनीकों के साथ बेझिझक प्रयोग करें।

रिग्रेशन #एआई #डेटाएनालिसिस #डेटाप्रीप्रोसेसिंग #एमएलमॉडल #रैंडमफॉरेस्ट #लीनियररिग्रेशन #फ्लास्क #एपीआईडेवलपमेंट #रियलएस्टेट #टेकब्लॉग #ट्यूटोरियल #डेटाइंजीनियरिंग #डीपलर्निंग #प्रेडिक्टिवएनालिटिक्स #डेकम्युनिटी

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/amitkrishna/predicting-house-prices-with-scikit-learn-a-complete-guide-2kd7?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3