- ज्यूपिटर नोटबुक में पायथन लाइब्रेरी का उपयोग करके मशीन लर्निंग मॉडल को प्रशिक्षित करें
- एक प्रशिक्षित मशीन लर्निंग मॉडल को स्ट्रीमलिट वेब ऐप में शामिल करें
इस पाठ के लिए ये गतिविधियाँ हैं:
मशीन लर्निंग मॉडल के साथ काम करना
ज्यूपिटर नोटबुक, पायथन और स्ट्रीमलिट की एक अन्य प्रमुख विशेषता मशीन लर्निंग मॉडल को प्रशिक्षित करने और भविष्यवाणियां करने की क्षमता है।
यदि आप आर्टिफिशियल इंटेलिजेंस में नए हैं, तो आप यहां शामिल अधिक उन्नत कोडिंग में कूदने से पहले मूल बातें सीखने के लिए इस पाठ्यक्रम में एआई पाठों को देखना चाह सकते हैं। आप उपयोगकर्ता के अनुकूल मशीन लर्निंग मॉडल प्लेटफॉर्म का उपयोग कर सकते हैं जैसे टीचेबल मशीन एक मॉडल बनाने के लिए और फिर भी इसे पायथन वेब ऐप में शामिल करें।
यदि आपको कृत्रिम बुद्धिमत्ता और ज्यूपिटर नोटबुक का उपयोग करके डेटासेट के साथ काम करने का कुछ अनुभव है, तो यह आपके लिए एक अच्छा अगला कदम है।
इस पाठ में, आप कुछ पायथन मशीन लर्निंग लाइब्रेरी और कुछ अलग-अलग मशीन लर्निंग मॉडल के बारे में जानेंगे जिन्हें आप पायथन का उपयोग करके बना सकते हैं।
समीक्षा करने के लिए, मशीन लर्निंग मॉडल बनाने के लिए, 3 मुख्य भाग हैं।
डेटासेट
सीखने एल्गोरिथ्म के साथ पैटर्न ढूँढता है
पूर्वानुमान!
डेटासेट मॉडल के लिए आपका इनपुट है। इसमें पाठ, चित्र, ध्वनियाँ या पोज़ शामिल हो सकते हैं। हमने ज्यूपिटर नोटबुक का उपयोग करके यूनिट 2 में पाठ और संख्यात्मक डेटा के साथ काम किया। हम इस पाठ में टेक्स्ट डेटा के साथ स्प्रेडशीट के रूप में काम करना जारी रखेंगे।
पैटर्न ढूँढना अनिवार्य रूप से डेटासेट का उपयोग करके मशीन लर्निंग मॉडल का निर्माण कर रहा है। पायथन में कई पुस्तकालय हैं जो डेटा से एआई मॉडल का निर्माण करेंगे। इस पाठ्यक्रम में, हम स्किकिट-लर्न पैकेज से कई कार्यों का उपयोग करेंगे। इसके द्वारा प्रदान किए जाने वाले पुस्तकालयों के अलावा, वेबसाइट में मशीन लर्निंग और मॉडल बनाने की प्रक्रिया के बारे में बहुत सारी उत्कृष्ट जानकारी है। यह अधिक जानने के लिए एक महान संसाधन है!
एक बार जब आप अपना मॉडल बना लेते हैं, तो मॉडल का उपयोग नई जानकारी के आधार पर परिणाम की भविष्यवाणी करने के लिए किया जा सकता है। एक बार फिर, पायथन पुस्तकालयों की आपूर्ति करता है जो इसे सक्षम करते हैं।
प्रीप्रोसेसिंग डेटा
इससे पहले कि आपका डेटासेट मॉडल बनाने के लिए एल्गोरिथम को भेजा जा सके, इसे प्रीप्रोसेस्ड या "साफ" किया जाना चाहिए ताकि मॉडल बिल्डिंग एल्गोरिथम इसके साथ काम कर सके और सबसे सटीक मॉडल को संभव बना सके। वास्तव में, मशीन लर्निंग मॉडल बनाने के लिए काम का बड़ा हिस्सा प्रीप्रोसेसिंग में है। आपको यह तय करने के लिए डेटा को ध्यान से देखने की आवश्यकता होगी कि क्या महत्वपूर्ण है, क्या छोड़ा जा सकता है और क्या साफ करने की आवश्यकता है।
प्रीप्रोसेसिंग में क्या शामिल है? टेक्स्ट-आधारित डेटासेट के साथ, इससे निपटने के लिए यहां कुछ चीजें दी गई हैं।
शून्य मान
कभी-कभी डेटासेट में रिक्त या शून्य मान होते हैं, खासकर यदि डेटा सर्वेक्षण डेटा है। कभी-कभी आप शून्य डेटा वाली किसी भी पंक्ति को समाप्त कर देंगे।
हालांकि, यदि नमूनों की संख्या कम है, तो आप उन्हें खत्म नहीं करना चाह सकते हैं। एक अन्य विकल्प किसी अन्य मान के साथ एक शून्य मान को बदलना है। यह शून्य हो सकता है, या यह उस क्षेत्र के लिए अन्य सभी मानों का औसत हो सकता है।
आउटलायर्स
कभी-कभी डेटा में एक या दो नमूने होते हैं जो बाकी डेटा से बहुत अलग होते हैं। यह मॉडल को तिरछा कर सकता है। आप नहीं चाहते कि आउटलेयर मॉडल बनाने के तरीके को प्रभावित करें, इसलिए अक्सर डेटासेट से आउटलेयर को हटा दिया जाता है।
उदाहरण के लिए, आपके पास एक डेटासेट हो सकता है जहां 95% नमूने 10-30 आयु वर्ग के लोग हैं, लेकिन आपके पास कुछ यादृच्छिक नमूने हैं जहां लोग 50 से अधिक हैं। चूंकि अधिकांश नमूने 10-30 आयु वर्ग में हैं, इसलिए आप अधिक आयु वर्ग के नमूनों को हटाने पर विचार कर सकते हैं।
मानकीकरण
अक्सर एक बड़े डेटासेट में संख्याएं अलग-अलग होती हैं, यह इस बात पर निर्भर करता है कि किन विशेषताओं का प्रतिनिधित्व किया जाता है। उदाहरण के लिए, आपकी आयु हो सकती है, जो 0 से 70 तक भिन्न होती है, लेकिन फिर आपके पास वेतन हो सकता है, जो 0 से 500,000 तक होता है! तराजू बहुत अलग हैं, इसलिए मॉडल में एक विशेषता अधिक गिनी जा सकती है।
इसे ठीक करने के लिए, आप डेटा को मानकीकृत कर सकते हैं ताकि यह एकल पैमाने पर हो। scikit-learn एक StandardScaler प्रदान करता है, जो प्रत्येक सुविधाओं को अपडेट करता है ताकि माध्य 0 हो और मानक विचलन 1 हो।
विचार करने के लिए एक और बात प्रत्येक वर्ग या लेबल के लिए नमूनों की संतुलित संख्या है। आप यह सुनिश्चित करना चाहते हैं कि आपके डेटासेट में प्रत्येक वर्ग की लगभग समान संख्या हो।
एन्कोडिंग
एआई को संख्याएं पसंद हैं, जरूरी नहीं कि शब्द। तो यह सभी डेटा को संख्याओं में बदलने में मदद करता है। scikit-learn एनकोडर फ़ंक्शन प्रदान करता है, जिससे आप आसानी से संभावित टेक्स्ट मानों की एक श्रृंखला को संख्याओं की श्रेणी में परिवर्तित कर सकते हैं।
एक उदाहरण गतिविधि स्तर हो सकता है, जिसमें नमूना मान गतिहीन, हल्का, मध्यम, उच्च हो सकता है। उन प्रतिक्रियाओं को 0, 1, 2 और 3 मान के लिए एन्कोड किया जा सकता है, जो मॉडल बिल्डिंग एल्गोरिदम को संभालने के लिए बहुत आसान है।
डेटा विभाजित करना
एक बार जब आप अपने डेटा को प्रीप्रोसेस कर लेते हैं, तो आपको इसे एक प्रशिक्षण सेट और एक परीक्षण सेट में विभाजित करना होगा। प्रशिक्षण सेट का उपयोग मॉडल को प्रशिक्षित करने और बनाने के लिए किया जाएगा। फिर आप परीक्षण सेट का उपयोग करके अपने मॉडल का परीक्षण करेंगे कि यह कैसा प्रदर्शन करता है।
इसे विभाजित करने के मानक तरीके हैं (आमतौर पर प्रशिक्षण के लिए 75%, और परीक्षण के लिए 25%) लेकिन आप इसे अपनी इच्छानुसार विभाजित कर सकते हैं। फिर से, फ़ंक्शन प्रदान किए जाते हैं इसलिए यह आपके लिए स्वचालित है।
मॉडल बनाना
अगला कदम मॉडल बना रहा है। बनाने के लिए एक बड़ा निर्णय है, मैं किस एल्गोरिदम का उपयोग करता हूं? चुनने के लिए कई अलग-अलग पर्यवेक्षित शिक्षण एल्गोरिदम हैं, और यह जानना कठिन है कि किसका उपयोग करना है। एक अच्छी प्रक्रिया कई अलग-अलग एल्गोरिदम को आज़माना है और फिर देखें कि कौन सा आपको सबसे अच्छी सटीकता देता है।
पहला कदम यह तय करना है कि आपको वर्गीकरण एल्गोरिथ्म या प्रतिगमन एल्गोरिथ्म की आवश्यकता है या नहीं। यह इस बात पर निर्भर करता है कि आप क्या भविष्यवाणी करने की कोशिश कर रहे हैं।
वर्गीकरण एल्गोरिदम का उपयोग असतत लक्ष्यों या वर्गों की भविष्यवाणी करने के लिए किया जाता है। उदाहरण के लिए, ईमेल को स्पैम के रूप में वर्गीकृत करना या स्पैम नहीं करना एक वर्गीकरण समस्या होगी
प्रतिगमन एल्गोरिदम का उपयोग किसी ऐसी चीज की भविष्यवाणी करने के लिए किया जाता है जो एक निरंतर सीमा के साथ होती है। एक उदाहरण यह भविष्यवाणी कर रहा होगा कि किसी व्यक्ति को कितना वेतन दिया जाएगा। भविष्यवाणी संख्याओं की एक श्रृंखला है और आउटपुट उस सीमा के साथ कोई भी मूल्य हो सकता है।
यहाँ कुछ लोकप्रिय प्रकार के मॉडल निर्माण एल्गोरिदम दिए गए हैं।
वर्गीकरण
- निर्णय वृक्ष
- रैंडम फ़ॉरेस्ट
- K-निकटतम पड़ोसी
- नैव बेयस
- लॉजिस्टिक रिग्रेशन
- समर्थन वेक्टर मशीन
प्रतिगमन
- रैखिक प्रतिगमन
- रिज प्रतिगमन
- लासो रिग्रेशन
- बहुपद प्रतिगमन
- बायेसियन रैखिक प्रतिगमन
- वेक्टर प्रतिगमन का समर्थन करें
ध्यान दें कि कुछ एल्गोरिदम दोनों प्रकारों के अंतर्गत आते हैं। उदाहरण के लिए, एक निर्णय वृक्ष क्लासिफायरियर के साथ-साथ एक निर्णय वृक्ष प्रतिगामी भी है। और एक समर्थन वेक्टर मशीन वर्गीकरण के लिए काम करती है, और समर्थन वेक्टर प्रतिगमन प्रतिगमन के लिए काम करता है।
तो, आप कैसे तय करते हैं कि किसका उपयोग करना है? आपको यह देखने के लिए शोध करना चाहिए कि अन्य डेटा वैज्ञानिक विभिन्न स्थितियों के लिए क्या उपयोग करते हैं, यह देखने के लिए कि आपके मॉडल के लिए क्या हो सकता है। आपको अपने डेटा के साथ कुछ अलग एल्गोरिदम भी आज़माने चाहिए और फिर पता लगाना चाहिए कि कौन सा सबसे अच्छी सटीकता प्रदान करता है। आप किसी विशेष एल्गोरिथ्म के लिए मापदंडों को भी ट्विक कर सकते हैं यह देखने के लिए कि क्या यह अधिक सटीक मॉडल लौटाता है।
Scitkit-Learn इन सभी एल्गोरिदम के लिए फ़ंक्शन प्रदान करता है, इसलिए मॉडल बनाना सीधा है।
मॉडल का मूल्यांकन
आप चाहते हैं कि आपका मॉडल सबसे अच्छा हो, इसलिए आपको इसके प्रदर्शन का मूल्यांकन करने की आवश्यकता है। एक मॉडल के मूल्यांकन में दो सामान्य चर पूर्वाग्रह और विचरण हैं।
पूर्वाग्रह मॉडल के अनुमानित मूल्य और सही मूल्य के बीच का अंतर है।
प्रसरण यह है कि अलग-अलग डेटा का उपयोग करने पर भविष्यवाणियां कितनी बदल जाती हैं।
आप पूर्वाग्रह और विचरण के बीच एक अच्छा संतुलन प्राप्त करना चाहते हैं।
उच्च पूर्वाग्रह -> अंडरफिटिंग।
अंडरफिटिंग तब होती है जब प्रशिक्षण डेटा में शोर के लिए मॉडल बहुत सरल होता है। यह तब हो सकता है जब पर्याप्त डेटा न हो या पर्याप्त सुविधाएँ (कॉलम) न हों, या डेटा में बहुत अधिक शोर हो. यदि कोई मॉडल प्रशिक्षण डेटा और परीक्षण डेटा दोनों पर अच्छा प्रदर्शन नहीं करता है, तो यह अंडरफिटिंग का संकेत देता है।
उच्च विचरण -> ओवरफिटिंग।
ओवरफिटिंग तब होती है जब आप डेटा के एक सेट पर एक मॉडल को प्रशिक्षित करते हैं और यह बहुत अच्छा प्रदर्शन करता है, लेकिन यदि आप इसे नए डेटा के साथ प्रस्तुत करते हैं, तो यह बिल्कुल भी अच्छा प्रदर्शन नहीं करता है। यह तब हो सकता है जब मॉडल अत्यधिक जटिल हो और यह प्रशिक्षण डेटा के बहुत करीब फिट होने की कोशिश करता है। मॉडल प्रशिक्षण डेटा पर बहुत अच्छी तरह से भविष्यवाणी कर सकता है, लेकिन फिर परीक्षण डेटा पर खराब प्रदर्शन करता है।
किसी मॉडल के प्रदर्शन की जांच करने की एक तकनीक क्रॉस-सत्यापन है।
क्रॉस-सत्यापन का अर्थ है अपने मॉडल को कई बार प्रशिक्षित करना, हर बार प्रशिक्षण / परीक्षण डेटा के विभिन्न विभाजनों का उपयोग करना। आपका डेटासेट कई तहों, या सबसेट में विभाजित है। फिर एक गुना सत्यापन या परीक्षण सेट के रूप में आयोजित किया जाता है, और शेष सिलवटों का उपयोग इसे प्रशिक्षित करने के लिए किया जाता है। यह कई बार किया जाता है, इसलिए हर बार प्रशिक्षण और परीक्षण सेट बदल जाते हैं।
Sciikit-Learn एक मेट्रिक्स लाइब्रेरी भी प्रदान करता है ताकि आप आसानी से अपने मॉडलों के लिए प्रदर्शन स्कोर प्राप्त कर सकें।
- सटीकता स्कोर = सही भविष्यवाणियां/कुल भविष्यवाणियां
- परिशुद्धता = सही सकारात्मक/(सही सकारात्मक + झूठी सकारात्मक)
- याद = सच सकारात्मक/(सच सकारात्मक + झूठी नकारात्मक)
- F1 स्कोर = (2 x सटीक x रिकॉल)/(सटीक + रिकॉल)
- विशिष्टता = सही नकारात्मक / (सही सकारात्मक + गलत नकारात्मक)
- भ्रम मैट्रिक्स - सच सकारात्मक, सच नकारात्मक, झूठी सकारात्मक और झूठी नकारात्मक गणना दिखाता है
विभिन्न एल्गोरिदम से मैट्रिक्स की जांच करके, आप सबसे अच्छा मॉडल चुन सकते हैं।
भविष्यवाणी!
एक बार जब आपके पास एक मॉडल होता है जिससे आप संतुष्ट होते हैं, तो आप इसे अपने ऐप में उपयोग करना चाहते हैं।
ज्यूपिटर नोटबुक जैसे वातावरण में पायथन का उपयोग करके अपने मॉडल का प्रीप्रोसेसिंग, निर्माण और मूल्यांकन करना आम बात है। वहां से, आप अपने मॉडल को एक फ़ाइल के रूप में निर्यात कर सकते हैं।
फिर, अपने स्ट्रीमलिट ऐप के भीतर, आप मॉडल को लोड कर सकते हैं और भविष्यवाणियां करने के लिए इसका उपयोग कर सकते हैं।
इस पाठ की गतिविधियों में, आप स्ट्रोक जोखिम डेटासेट का उपयोग करके इस पूरी प्रक्रिया से गुजरेंगे। आप देखेंगे कि डेटा को कैसे प्रीप्रोसेस किया जाए, विभिन्न एल्गोरिदम का उपयोग करके मॉडल बनाएं, और फिर कुछ इनपुट विशेषताओं को देखते हुए स्ट्रोक के जोखिम की भविष्यवाणी करने के लिए एक साधारण स्ट्रीमलिट ऐप में एक मॉडल का उपयोग करें।
गतिविधि 1: ज्यूपिटर नोटबुक में एआई मॉडल को प्रशिक्षित करें
एआई मॉडल बनाने के लिए स्ट्रोक जोखिम डेटासेट का अन्वेषण करें
- Kaggle से स्ट्रोक भविष्यवाणी डेटासेट डाउनलोड करें।
- जुपिटर नोटबुक में डेटा के साथ निम्न के लिए कार्य करें:
- डेटा की समीक्षा करें
- मॉडल के लिए इसे तैयार करने के लिए डेटा को प्रीप्रोसेस करें
- कुछ अलग मॉडल बनाएं
- मूल्यांकन करें और अपने ऐप के लिए एक मॉडल चुनें
- मॉडल निर्यात करें
चुनौती
ज्यूपिटर नोटबुक में लोगों की तुलना में एक अलग मॉडल आज़माएं।
- अन्य वर्गीकरण एल्गोरिदम के लिए स्किकिट-लर्न वेबसाइट पर शोध करें, और कागल पर अन्य मॉडल-निर्माण उदाहरणों को देखें।
- एक एल्गोरिथ्म चुनें और मॉडल बनाने के लिए अपनी नोटबुक में कोड जोड़ें।
- सटीकता की जांच के लिए स्किकिट-लर्न मेट्रिक्स का उपयोग करें।
आपका मॉडल कैसा प्रदर्शन करता है? क्या यह नोटबुक में किसी भी अन्य एल्गोरिदम से बेहतर है?
गतिविधि 2: एक पूर्वानुमान ऐप बनाएं
स्ट्रीमलिट ऐप में अपने मॉडल का उपयोग करें
आप अपने ऐप को कैसे कोड कर रहे हैं, इसके आधार पर उपयुक्त वीडियो चुनें, या तो स्थानीय रूप से विजुअल स्टूडियो कोड के साथ, या ऑनलाइन कोडस्पेस के साथ।
चुनौती
आइरिस डेटासेट एक क्लासिक डेटासेट है जो पंखुड़ी और सेपल आयामों के आधार पर आईरिस फूलों को 3 प्रजातियों (सेटोसा, वर्सीकलर और वर्जिनिका) में वर्गीकृत करता है।
- इसकी विशेषताओं और लक्ष्यों को जानने के लिए डेटासेट पर कुछ शोध करें।
- आप डेटासेट डाउनलोड कर सकते हैं और अपना खुद का मॉडल बना सकते हैं या K-निकटतम पड़ोसियों का उपयोग करके बनाए गए इस मॉडल (अचार फ़ाइल) का उपयोग कर सकते हैं। ध्यान दें कि इस डेटासेट के लिए किसी स्केलर की आवश्यकता नहीं थी। अचार फ़ाइल में सिर्फ मॉडल होता है।
- मॉडल आयात करें और चार डेटासेट सुविधाओं के आधार पर आईरिस प्रजातियों की भविष्यवाणी करने के लिए एक स्ट्रीमलिट ऐप बनाएं।
टेक्नोवेशन प्रेरणा
यहां टेक्नोवेशन प्रतिभागियों के कुछ बहुत ही अद्भुत उदाहरण दिए गए हैं जिन्होंने मशीन लर्निंग मॉडल को शामिल करने वाले वेब ऐप बनाने के लिए पायथन और स्ट्रीमलिट का उपयोग किया था।
T.E.D.D.Y - संयुक्त राज्य अमेरिका की टीम टेडी द्वारा युवाओं के लिए टेक्स्ट-आधारित प्रारंभिक संकट डिटेक्टर, छात्रों की मानसिक-स्वास्थ्य संबंधी चिंताओं का जल्द पता लगाने में शिक्षकों और परामर्शदाताओं की सहायता करता है। टेडी एआई का उपयोग नकारात्मक भावना व्यक्त करने वाले वाक्यों की पहचान करने या अवसाद वाले व्यक्तियों से अपेक्षित भाषा पैटर्न दिखाने के लिए करता है। फिर, छात्रों को समर्थन के लिए परामर्शदाता के पास भेजा जा सकता है।
परावर्तन
आप डेटासेट को प्रीप्रोसेस करने, कई मॉडल बनाने और ऐप में उपयोग करने के लिए मूल्यांकन करने और किसी एक को चुनने की पूरी प्रक्रिया से गुजरे हैं। यह एक पाठ में सीखने के लिए बहुत कुछ है!
प्रमुख शब्दों की समीक्षा
- प्रीप्रोसेसिंग - डेटासेट लेना और यह सुनिश्चित करना कि इसमें डेटा मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए उपयुक्त है
- वर्गीकरण एल्गोरिथ्म - एक एल्गोरिथ्म जिसका उपयोग मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए किया जाता है जो असतत मूल्यों को वर्गीकृत या भविष्यवाणी करेगा
- प्रतिगमन एल्गोरिथ्म - एल्गोरिथ्म एक निरंतर सीमा पर एक मूल्य की भविष्यवाणी करने के लिए मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए उपयोग किया जाता है
- पूर्वाग्रह - मॉडल के अनुमानित मूल्य और सही मूल्य के बीच का अंतर, गलत धारणाओं के कारण जो मॉडल को सरल बनाते हैं
- प्रसरण - मॉडल भविष्यवाणियों में परिवर्तनशीलता की मात्रा, जब एक मॉडल नए डेटा का सामना करने पर सामान्यीकरण करने में असमर्थ होता है
- ओवरफिटिंग - जब मॉडल प्रशिक्षण डेटा के लिए बहुत अच्छी तरह से फिट बैठता है कि यह मॉडल में उच्च विचरण के कारण नए डेटा पर अच्छी तरह से भविष्यवाणी नहीं कर सकता है
- अंडरफिटिंग - जब एक मॉडल को बहुत अधिक सरल बनाया जाता है और मॉडल में उच्च पूर्वाग्रह या मान्यताओं के कारण प्रशिक्षण या परीक्षण डेटा पर अच्छा प्रदर्शन नहीं करता है
अतिरिक्त संसाधन
मशीन लर्निंग
- गीक्स मशीन लर्निंग ट्यूटोरियल के लिए गीक्स - मशीन सीखने की प्रक्रिया और शब्दावली में से कुछ का एक महान परिचय और अवलोकन देता है
- सिंपलीलर्न का स्किकिट-लर्न ट्यूटोरियल - ज्यूपिटर नोटबुक में स्किकिट-लर्न का उपयोग करके अभ्यास करने के लिए वाइन क्वालिटी डेटासेट के माध्यम से जाता है
- मशीन लर्निंग के साथ स्किकिट-लर्न - डेटा स्कूल द्वारा एक पूर्ण यूट्यूब प्लेलिस्ट
सुव्यवस्थित
- पैट्रिक लोएबर के साथ स्क्रैच से एक मशीन लर्निंग वेब ऐप बनाएं - एक मॉडल बनाने और वेब ऐप में इसका उपयोग करने का एक और उदाहरण, शुरू से अंत तक
- स्ट्रीमलिट के साथ छवि क्लासिफायरियर, यदि आपका मॉडल छवियों पर प्रशिक्षित है
