html
Python के साथ डेटा विज्ञान तकनीकों का उपयोग करके वर्षा पूर्वानुमान के लिए व्यापक गाइड
मौसम की स्थिति का पूर्वानुमान, विशेष रूप से वर्षा का, कृषि, उड्डयन और आयोजन योजना जैसे विभिन्न क्षेत्रों में एक महत्वपूर्ण कार्य है। डेटा विज्ञान और मशीन लर्निंग तकनीकों का लाभ उठाते हुए, हम उच्च सटीकता के साथ वर्षा का पूर्वानुमान लगाने के लिए मजबूत मॉडल बना सकते हैं। इस व्यापक मार्गदर्शिका में, हम आपको पाइथन, जुपिटर नोटबुक और Kaggle से प्रसिद्ध Weather in Australia डेटासेट का उपयोग करके वर्षा पूर्वानुमान मॉडल बनाने की चरणबद्ध प्रक्रिया से परिचित कराएँगे।
सामग्री सूची
- परिचय
- डेटा आयात करना और अन्वेषण करना
- गुम डेटा को संभालना
- विशेषता चयन
- लेबल एनकोडिंग
- असंतुलित डेटा को संभालना
- ट्रेन-टेस्ट विभाजन
- विशेषता स्केलिंग
- निष्कर्ष
- अतिरिक्त संसाधन
परिचय
मौसम पूर्वानुमान मॉडल आगामी मौसम की स्थितियों की भविष्यवाणी और तैयारी के लिए आवश्यक होते हैं। यह मार्गदर्शिका कल वर्षा होगी या नहीं (RainTomorrow
) इस बात का पूर्वानुमान लगाने पर केंद्रित है, जिसमें ऑस्ट्रेलिया के ऐतिहासिक मौसम डेटा का उपयोग किया गया है। हम डेटा को प्रीप्रोसेस करने, गुम मानों को संभालने, श्रेणिबद्ध चर को एनकोड करने, डेटासेट को संतुलित करने और उत्कृष्ट मॉडल प्रदर्शन के लिए विशेषताओं को स्केल करने के लिए पाइथन की शक्तिशाली लाइब्रेरी जैसे pandas, scikit-learn और imbalanced-learn का उपयोग करेंगे।
उपयोग किया गया डेटासेट: Weather in Australia
डेटा आयात करना और अन्वेषण करना
किसी भी डेटा विज्ञान परियोजना का पहला कदम डेटासेट को आयात करना और इसकी संरचना और सामग्री को समझने के लिए इसका अन्वेषण करना होता है।
लाइब्रेरीज़ और डेटा आयात करना
1234567
import pandas as pdimport numpy as npfrom sklearn.impute import SimpleImputerfrom sklearn import preprocessingfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom imblearn.over_sampling import RandomOverSampler
डेटा लोड करना
123
# Load the datasetdata = pd.read_excel('data.xlsx')print(data)
नमूना आउटपुट:
नाम
ऊंचाई
वजन
आयु
लिंग
0
Liam
5.6
85.0
25.0
पुरुष
1
Noah
5.6
102.0
45.0
पुरुष
2
William
6.1
94.0
65.0
पुरुष
...
...
...
...
...
...
गुम डेटा को संभालना
गुम डेटा मॉडलों में पूर्वाग्रह पैदा कर सकता है और सटीकता को कम कर सकता है। गुम मानों को प्रभावी ढंग से संभालना आवश्यक है।
गुम मानों की पहचान करना
1
print(X)
आउटपुट:
नाम
ऊंचाई
वजन
आयु
0
Liam
5.6
85.0
25.0
1
Noah
5.6
102.0
45.0
6
Elijah
5.2
NaN
12.0
7
Lucas
NaN
85.0
41.0
...
...
...
...
...
मीन रणनीति के साथ गुम मानों को पूर्ति करना
1234
imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')imp_mean.fit(X.iloc[:,1:4])X.iloc[:,1:4] = imp_mean.transform(X.iloc[:,1:4])print(X)
पूर्ति किए गए डेटा आउटपुट:
नाम
ऊंचाई
वजन
आयु
0
Liam
5.6
85.0
25.0
1
Noah
5.6
102.0
45.0
6
Elijah
5.2
78.33
12.0
7
Lucas
5.51
85.0
41.0
...
...
...
...
...
विशेषता चयन
सही विशेषताओं का चयन एक प्रभावी मॉडल बनाने के लिए आवश्यक है। यह ओवरफिटिंग को कम करने और मॉडल के प्रदर्शन में सुधार करने में मदद करता है।
12
X = X.iloc[:,1:]print(X)
चयनित विशेषताओं का आउटपुट:
ऊंचाई
वजन
आयु
0
5.6
85.0
25.0
1
5.6
102.0
45.0
...
...
...
...
लेबल एनकोडिंग
मशीन लर्निंग मॉडल को संख्यात्मक इनपुट की आवश्यकता होती है। इसलिए, gender
जैसे श्रेणिबद्ध चर को एनकोड करना आवश्यक है।
1234
le = preprocessing.LabelEncoder()le.fit(Y)Y = le.transform(Y)print(Y)
एनकोडेड लेबल्स आउटपुट:
1
[1 1 1 1 1 1 1 1 1 0 0 0 0]
यहाँ, 1
का प्रतिनिधित्व पुरुष द्वारा किया गया है और 0
का प्रतिनिधित्व महिला द्वारा किया गया है।
असंतुलित डेटा को संभालना
असंतुलित डेटासेट मॉडल को बहुमत वर्ग की ओर धकेल सकते हैं। इसे संबोधित करने के लिए, हम ओवरसैम्पलिंग तकनीकों का उपयोग करते हैं।
RandomOverSampler के साथ ओवरसैम्पलिंग
12345
from imblearn.over_sampling import RandomOverSampler rus = RandomOverSampler(random_state=42)X, Y = rus.fit_resample(X, Y)print(Y)
संतुलित लेबल्स आउटपुट:
1
[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0]
अब, दोनों वर्ग संतुलित हैं, जिससे मॉडल दोनों पुरुष और महिला उदाहरणों से समान रूप से सीखता है।
ट्रेन-टेस्ट विभाजन
डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करना अनदेखे डेटा पर मॉडल के प्रदर्शन का मूल्यांकन करने के लिए महत्वपूर्ण है।
12
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.20, random_state=1)print(y_test)
टेस्ट लेबल्स आउटपुट:
1
[1 0]
विशेषता स्केलिंग
विशेषताओं को स्केल करना यह सुनिश्चित करता है कि सभी विशेषताएँ मॉडल के प्रदर्शन में समान रूप से योगदान दें।
मानकीकरण
मानकीकरण डेटा को इस प्रकार परिवर्तित करता है कि इसका माध्य शून्य और मानक विचलन एक हो।
1234
sc = preprocessing.StandardScaler()sc.fit(X_train)X_train = sc.transform(X_train)print(X_train)
मानकीकृत प्रशिक्षण डेटा आउटपुट:
1234
[[-1.58788812 -1.52993724 -0.73910107] [ 0.78570243 0.46563307 1.79495975] ... ]
टेस्ट डेटा पर स्केलिंग लागू करना
12
X_test = sc.transform(X_test)print(X_test)
मानकीकृत टेस्ट डेटा आउटपुट:
12
[[ 1.18130085 0.46563307 -1.35077093] [-0.79669127 -0.93126615 -0.30219404]]
निष्कर्ष
इस मार्गदर्शिका में, हमने पाइथन का उपयोग करके वर्षा पूर्वानुमान मॉडल के लिए डेटा को प्रीप्रोसेस करने के आवश्यक चरणों पर चर्चा की है। डेटासेट को आयात करने और उसका अन्वेषण करने से शुरू करके गुम मानों को संभालने, लेबल को एनकोड करने, डेटा को संतुलित करने और विशेषताओं को स्केल करने तक, प्रत्येक कदम एक मजबूत मशीन लर्निंग मॉडल बनाने में महत्वपूर्ण है। अगले चरणों में उपयुक्त मशीन लर्निंग एल्गोरिदम का चयन, मॉडल को प्रशिक्षण देना और इसके प्रदर्शन का मूल्यांकन शामिल है।
इन चरणों का पालन करके, आप विभिन्न भविष्यवाणी मॉडलिंग कार्यों के लिए अपने डेटा को प्रभावी ढंग से तैयार कर सकते हैं, जिससे आपकी भविष्यवाणियों में उच्च सटीकता और विश्वसनीयता सुनिश्चित होती है।
अतिरिक्त संसाधन
- Kaggle डेटासेट: Weather in Australia
- पाइथन लाइब्रेरीज़:
- जुपिटर नोटबुक: इस मार्गदर्शिका में चर्चा किए गए चरणों को लागू करने वाले इंटरैक्टिव जुपिटर नोटबुक का अन्वेषण करके अपने सीखने को बेहतर बनाएं। नोटबुक तक पहुँचें
लेखक: Your Name
तारीख: 10 अक्टूबर, 2023
कैटेगरीज: डेटा विज्ञान, मशीन लर्निंग, पाइथन, मौसम पूर्वानुमान
टैग्स: वर्षा पूर्वानुमान, डेटा प्रीप्रोसेसिंग, पाइथन ट्यूटोरियल, मशीन लर्निंग, Scikit-learn
डेटा प्रीप्रोसेसिंग और मॉडल प्रशिक्षण में सर्वोत्तम प्रथाओं का पालन करके अपने डेटा विज्ञान वर्कफ़्लो को अनुकूलित करें। और अधिक ट्यूटोरियल और गाइड के लिए बने रहें!