क्या आप शुरुआत करना चाहेंगे यंत्र अधिगम?
मैंने पूर्ण शुरुआती लोगों के लिए एक सरल और आसान ट्यूटोरियल बनाया है। साथ में, हम मशीन लर्निंग मॉडल के प्रशिक्षण के बुनियादी चरणों पर विचार करेंगे।
एक-एक करके मॉडल को प्रशिक्षित करने के चरणों की व्याख्या करते हुए, मैं मशीन-लर्निंग समस्या का एक बहुत ही बुनियादी उदाहरण भी दूंगा। इसलिए, यदि आप साथ चलना चाहते हैं, तो आप इस नमूना डेटा सेट को इससे डाउनलोड कर सकते हैं संपर्क.
मशीन सीखने के साथ आरंभ करने में आपकी सहायता करने के लिए यह केवल एक नमूना डेटासेट है।
हमारे पास विभिन्न आयु और लिंग के लोगों के 18 मूल्य हैं जिनके पसंदीदा संगीत को परिभाषित किया गया है। "आयु" और "लिंग" की विशेषताओं का उपयोग करके हम यह अनुमान लगाने की कोशिश करेंगे कि संगीत की कौन सी शैली उनका पसंदीदा है।
नोट: इस डेटासेट में 1 और 0 को महिला और पुरुष के रूप में निर्दिष्ट किया गया है।
हालाँकि, यदि आप उदाहरण का अनुसरण नहीं करना चाहते हैं, तो यह भी पूरी तरह से ठीक है। मैं इन सभी चरणों को विस्तार से समझाऊंगा। तो, चलो गोता लगाएँ!
जानने के लिए पहली चीजें
एक मॉडल के प्रशिक्षण के चरणों में जाने से पहले, आइए कुछ बिंदुओं को स्पष्ट करें। मशीन लर्निंग एक है कृत्रिम बुद्धिमत्ता अनुशासन जो एल्गोरिदम विकसित करने पर केंद्रित है जो डेटा से सीख सकता है।
ऐसा करने के लिए, मशीन लर्निंग मॉडल को एक डेटासेट पर प्रशिक्षित किया जाता है जो मॉडल को सही भविष्यवाणी करना सिखाता है या वर्गीकरण ताजा, पहले अज्ञात डेटा पर।
तो, ये मॉडल क्या हैं? ए मशीन लर्निंग मॉडल एक नुस्खा के समान है जिसका उपयोग कंप्यूटर डेटा पूर्वानुमान या विकल्प उत्पन्न करने के लिए करता है।
एक मॉडल, एक नुस्खा की तरह, डेटा का मूल्यांकन करने के लिए निर्देशों के एक सेट का पालन करता है और डेटा में पाए जाने वाले पैटर्न के आधार पर पूर्वानुमान या निर्णय उत्पन्न करता है। मॉडल को जितने अधिक डेटा पर प्रशिक्षित किया जाता है, उसकी भविष्यवाणी उतनी ही सटीक होती है।
हम किस प्रकार के मॉडल को प्रशिक्षित कर सकते हैं?
आइए देखें कि बुनियादी मशीन लर्निंग मॉडल क्या हैं।
- रेखीय प्रतिगमन: एक मॉडल जो एक या अधिक इनपुट चर से निरंतर लक्ष्य चर की भविष्यवाणी करता है।
- तंत्रिका - तंत्र: लिंक किए गए नोड्स का एक नेटवर्क जो डेटा में जटिल पैटर्न का पता लगाना सीख सकता है।
- डिसीजन ट्रीज़: इफ-एल्स स्टेटमेंट्स की ब्रांचिंग की श्रृंखला पर निर्मित निर्णय लेने का दृष्टिकोण।
- क्लस्टरिंग: मॉडल का एक सेट जो समानता के आधार पर तुलनीय डेटा बिंदुओं को समूहित करता है।
- रसद प्रतिगमन: द्विआधारी वर्गीकरण समस्याओं के लिए एक मॉडल जिसमें लक्ष्य चर के दो संभावित मान हैं।
- डिसीजन ट्रीज़: इफ-एल्स स्टेटमेंट्स की ब्रांचिंग की श्रृंखला पर निर्मित निर्णय लेने का दृष्टिकोण।
- रैंडम फ़ॉरेस्ट: कई निर्णय पेड़ों से बना एक पहनावा मॉडल। वे अक्सर वर्गीकरण और प्रतिगमन अनुप्रयोगों के लिए उपयोग किए जाते हैं।
- K-निकटतम पड़ोसी: एक मॉडल जो प्रशिक्षण सेट में k-निकटतम डेटा बिंदुओं का उपयोग करके लक्ष्य चर की भविष्यवाणी करता है।
हमारी समस्या और डेटासेट के आधार पर, हम तय करते हैं कि कौन सा मशीन लर्निंग मॉडल हमारी स्थिति के लिए सबसे उपयुक्त है। फिर भी, हम बाद में इस पर वापस आएंगे। अब, आइए अपने मॉडल का प्रशिक्षण शुरू करें। मुझे आशा है कि आप पहले ही डाउनलोड कर चुके होंगे डाटासेट यदि आप हमारे उदाहरण का अनुसरण करना चाहते हैं।
इसके अलावा, मैं होने की सलाह देता हूं जुपीटर नोटबुक आपकी स्थानीय मशीन पर स्थापित और आपके मशीन लर्निंग प्रोजेक्ट्स के लिए इसका उपयोग करना।
1: समस्या को परिभाषित करें
प्रथम चरण में एक मशीन सीखने का प्रशिक्षण मॉडल हल करने के लिए समस्या को परिभाषित कर रहा है। यह उन चरों का चयन करने पर जोर देता है जिनका आप पूर्वानुमान करना चाहते हैं (जिन्हें लक्ष्य चर के रूप में जाना जाता है) और वे चर जिनका उपयोग उन भविष्यवाणियों को उत्पन्न करने के लिए किया जाएगा (जिन्हें सुविधाओं या भविष्यवक्ताओं के रूप में जाना जाता है)।
आपको यह भी तय करना चाहिए कि आप किस प्रकार की मशीन-लर्निंग समस्या को हल करने का प्रयास कर रहे हैं (वर्गीकरण, प्रतिगमन, क्लस्टरिंग, और इसी तरह) और आपको अपने मॉडल को प्रशिक्षित करने के लिए किस प्रकार के डेटा को इकट्ठा करने या प्राप्त करने की आवश्यकता होगी।
आपके द्वारा नियोजित मॉडल का प्रकार मशीन सीखने की समस्या के प्रकार से निर्धारित होगा जिसे आप हल करना चाहते हैं। वर्गीकरण, प्रतिगमन और क्लस्टरिंग तीन प्राथमिक श्रेणियां हैं मशीन सीखने की चुनौतियाँ. जब आप एक श्रेणीबद्ध चर की भविष्यवाणी करना चाहते हैं, जैसे कि कोई ईमेल स्पैम है या नहीं, तो आप वर्गीकरण का उपयोग करते हैं।
जब आप एक सतत चर की भविष्यवाणी करना चाहते हैं, जैसे घर की कीमत, तो आप प्रतिगमन का उपयोग करते हैं। क्लस्टरिंग का उपयोग तुलनीय डेटा आइटम्स को उनकी समानताओं के आधार पर एक साथ रखने के लिए किया जाता है।
अगर हम अपने उदाहरण को देखें; हमारी चुनौती किसी व्यक्ति की पसंदीदा संगीत शैली को उसके लिंग और उम्र से निर्धारित करना है। हम इस उदाहरण के लिए 18 लोगों के डेटासेट और उनकी उम्र, लिंग और पसंदीदा संगीत शैली की जानकारी का उपयोग करेंगे।
2. डेटा तैयार करें
आपके द्वारा समस्या निर्दिष्ट करने के बाद, आपको मॉडल के प्रशिक्षण के लिए डेटा तैयार करने की आवश्यकता होगी। इसमें डेटा की सफाई और प्रसंस्करण शामिल है। ताकि, हम यह सुनिश्चित कर सकें कि यह एक प्रारूप में है कि मशीन सीखने एल्गोरिदम इस्तेमाल कर सकते हैं।
इसमें लापता मानों को हटाने, श्रेणीबद्ध डेटा को संख्यात्मक डेटा में बदलने और सभी विशेषताओं को समान पैमाने पर सुनिश्चित करने के लिए डेटा को स्केलिंग या सामान्य करने जैसी गतिविधियाँ शामिल हो सकती हैं।
उदाहरण के लिए, आप लापता मानों को इस तरह हटाते हैं:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
लिटिल नोट: लाइन ओ में "import pandas as pd",
हम पंडों के पुस्तकालय को आयात करते हैं और बाद में कोड में इसके कार्यों और वस्तुओं को संदर्भित करना आसान बनाने के लिए इसे "पीडी" उपनाम देते हैं।
पंडास डेटा हेरफेर और विश्लेषण के लिए पायथन के लिए एक प्रसिद्ध मॉड्यूल है, खासकर जब संरचित या सारणीबद्ध डेटा के साथ काम कर रहा हो।
संगीत शैलियों के निर्धारण के हमारे उदाहरण में। हम पहले डेटासेट आयात करेंगे। मैंने इसका नाम music.csv रखा है, हालाँकि, आप इसे जैसे चाहें नाम दे सकते हैं।
मशीन लर्निंग मॉडल के प्रशिक्षण के लिए डेटा तैयार करने के लिए, हम इसे विशेषताओं (आयु और लिंग) और उद्देश्यों (संगीत शैली) में विभाजित करते हैं।
हम अपने मॉडल के प्रदर्शन का आकलन करने और ओवरफिटिंग से बचने के लिए डेटा को अतिरिक्त रूप से 80:20 प्रशिक्षण और परीक्षण सेट में विभाजित करेंगे।
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. मशीन लर्निंग मॉडल चुनें।
आपके द्वारा डेटा तैयार करने के बाद, आपको एक मशीन-लर्निंग मॉडल चुनना होगा जो आपके कार्य के अनुकूल हो।
चुनने के लिए कई एल्गोरिदम हैं, जैसे निर्णय पेड़, लॉजिस्टिक रिग्रेशन, सपोर्ट वेक्टर मशीन, न्यूरल नेटवर्क और अन्य। आपके द्वारा चुना गया एल्गोरिथ्म इस बात पर निर्भर करेगा कि आप किस प्रकार की समस्या का उत्तर देने का प्रयास कर रहे हैं, आपके पास किस प्रकार का डेटा है, और आपके प्रदर्शन की आवश्यकता है।
हम इस उदाहरण के लिए एक निर्णय ट्री क्लासिफायर का उपयोग करेंगे क्योंकि हम एक वर्गीकरण समस्या (श्रेणीबद्ध डेटा की भविष्यवाणी) के साथ काम कर रहे हैं।
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
यहाँ एक विज़ुअलाइज़ेशन है कि डिसीजन ट्री क्लासिफायरियर कैसे काम करता है:
4. मॉडल को प्रशिक्षित करें
जब आप एक स्वीकार्य मशीन-लर्निंग एल्गोरिथम चुन लेते हैं तो आप मॉडल का प्रशिक्षण शुरू कर सकते हैं। यह एल्गोरिथ्म को शिक्षित करने के लिए पहले से उत्पन्न डेटा का उपयोग करने पर जोर देता है कि कैसे ताजा, पहले से अनदेखे डेटा पर भविष्यवाणी की जाए।
एल्गोरिथ्म प्रशिक्षण के दौरान अपने आंतरिक मापदंडों को संशोधित करेगा ताकि प्रशिक्षण डेटा में इसके अनुमानित मूल्यों और वास्तविक मूल्यों के बीच अंतर को कम किया जा सके। प्रशिक्षण के लिए उपयोग किए गए डेटा की मात्रा, साथ ही एल्गोरिथम के विशिष्ट पैरामीटर, परिणामी मॉडल की सटीकता पर प्रभाव डाल सकते हैं।
हमारे विशिष्ट उदाहरण में, अब जबकि हमने एक विधि तय कर ली है, हम अपने मॉडल को प्रशिक्षण डेटा के साथ प्रशिक्षित कर सकते हैं।
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. मॉडल का मूल्यांकन करें
मॉडल के प्रशिक्षित होने के बाद, यह सुनिश्चित करने के लिए नए डेटा पर मूल्यांकन किया जाना चाहिए कि यह सटीक और भरोसेमंद है। इसमें उस डेटा के साथ मॉडल का परीक्षण करना शामिल है जिसका प्रशिक्षण के दौरान उपयोग नहीं किया गया था और इसके अनुमानित मूल्यों की तुलना परीक्षण डेटा में वास्तविक मूल्यों से की गई थी।
यह समीक्षा किसी भी मॉडल की खामियों की पहचान करने में सहायता कर सकती है, जैसे कि ओवरफिटिंग या अंडरफिटिंग, और किसी भी तरह की फाइन-ट्यूनिंग की आवश्यकता हो सकती है।
परीक्षण डेटा का उपयोग करके, हम अपने मॉडल की शुद्धता का आकलन करेंगे।
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
सटीकता स्कोर अभी के लिए इतना बुरा नहीं है। 🙂 अपने सटीकता स्कोर को बेहतर बनाने के लिए, आप हमेशा डेटा को अधिक साफ़ कर सकते हैं या यह देखने के लिए विभिन्न मशीन-लर्निंग मॉडल आज़मा सकते हैं कि कौन सा उच्चतम स्कोर देता है।
6. मॉडल को फाइन-ट्यून करें
यदि मॉडल की दक्षता पर्याप्त पर्याप्त नहीं है, तो आप विभिन्न एल्गोरिथम मापदंडों को बदलकर या पूरी तरह से नए एल्गोरिदम के साथ प्रयोग करके इसे ठीक कर सकते हैं।
इस प्रक्रिया में वैकल्पिक सीखने की दरों के साथ प्रयोग करना, नियमितीकरण सेटिंग्स को संशोधित करना, या तंत्रिका नेटवर्क में छिपी हुई परतों की संख्या या आकार को बदलना शामिल हो सकता है।
7. मॉडल का प्रयोग करें
एक बार जब आप मॉडल के प्रदर्शन से खुश हो जाते हैं, तो आप नए डेटा पर पूर्वानुमान उत्पन्न करने के लिए इसका उपयोग करना शुरू कर सकते हैं।
यह मॉडल में ताजा डेटा फीड करने और उस डेटा पर भविष्यवाणियां उत्पन्न करने के लिए मॉडल के सीखे गए मापदंडों का उपयोग करने या मॉडल को व्यापक एप्लिकेशन या सिस्टम में एकीकृत करने के लिए आवश्यक हो सकता है।
नए डेटा की सटीकता से संतुष्ट होने के बाद हम अपने मॉडल का उपयोग नए डेटा पर भविष्यवाणियां करने के लिए कर सकते हैं। आप लिंग और उम्र के विभिन्न मूल्यों की कोशिश कर सकते हैं।
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
लपेटें
हमने अपने पहले मशीन लर्निंग मॉडल का प्रशिक्षण पूरा कर लिया है।
मुझे आशा है कि आपको यह उपयोगी लगा होगा। अब आप अलग-अलग मशीन लर्निंग मॉडल जैसे लीनियर रिग्रेशन या रैंडम फ़ॉरेस्ट का इस्तेमाल करके देख सकते हैं.
इसमें कई डेटासेट और चुनौतियां हैं Kaggle यदि आप मशीन सीखने की अपनी कोडिंग और समझ में सुधार करना चाहते हैं।
एक जवाब लिखें