स्किकिट सीखें - पायथन का उपयोग करके मशीन लर्निंग



स्किट सीखें ब्लॉग आपको पेशाब में मशीन लर्निंग से परिचित कराएगा। इसमें एक उपयोग का मामला शामिल है, जहां हम scikit learn का उपयोग करके लॉजिस्टिक रिग्रेशन लागू करेंगे।

इस ब्लॉग में, हम चर्चा करेंगे कि अजगर में स्किट सीखें। स्किकिट सीखने के बारे में बात करने से पहले, मशीन सीखने की अवधारणा को समझना चाहिएऔर पता होना चाहिए कि कैसे उपयोग करें । मशीन सीखने के साथ, आपको मैन्युअल रूप से अपनी जानकारी एकत्र नहीं करनी होगी। आपको बस एक एल्गोरिथ्म की आवश्यकता है और मशीन आपके लिए बाकी काम करेगी! क्या यह रोमांचक नहीं है? स्किकिट सीखना एक आकर्षण है जहां हम पायथन का उपयोग करके मशीन सीखने को लागू कर सकते हैं। यहएक निःशुल्क मशीन लर्निंग लाइब्रेरी है जिसमें डेटा विश्लेषण और खनन उद्देश्यों के लिए सरल और कुशल उपकरण हैं।मैं आपको निम्नलिखित विषयों के माध्यम से ले जाऊंगा, जो आगामी ब्लॉगों के लिए मूल सिद्धांतों के रूप में काम करेंगे:

मशीन लर्निंग क्या है?

मशीन लर्निंग एक प्रकार की कृत्रिम बुद्धिमत्ता है जो सॉफ्टवेयर अनुप्रयोगों को डेटा से सीखने और मानव हस्तक्षेप के बिना परिणामों की भविष्यवाणी करने में अधिक सटीक बनने की अनुमति देता है। लेकिन ऐसा कैसे होता है? उसके लिए, मशीन को कुछ डेटा पर प्रशिक्षित करने की आवश्यकता होती है और उसके आधार पर, यह एक मॉडल बनाने के लिए एक पैटर्न का पता लगाएगा।डेटा से ज्ञान प्राप्त करने और शक्तिशाली अंतर्दृष्टि प्रदान करने की यह प्रक्रिया मशीन सीखने के बारे में है। अपने काम की बेहतर समझ पाने के लिए नीचे दी गई छवि देखें:





मशीन लर्निंग - स्किटिट सीखें - एडुरका

डेटा का उपयोग करते हुए, सिस्टम एक एल्गोरिथ्म सीखता है और फिर एक भविष्य कहनेवाला मॉडल बनाने के लिए इसका उपयोग करता है। बाद में, हम मॉडल को समायोजित करते हैं या हम प्रतिक्रिया डेटा का उपयोग करके मॉडल की सटीकता बढ़ाते हैं। इस प्रतिक्रिया डेटा का उपयोग करते हुए, हम मॉडल को ट्यून करते हैं और नए डेटा सेट पर कार्रवाई की भविष्यवाणी करते हैं। हम ऐसा करेंगेचर्चा कर रहे हैं उदाहरण एल्गोरिथ्म दृष्टिकोण में से एक, जहां हम डेटा को प्रशिक्षित करेंगे और उसका परीक्षण करेंगे, जो आपको यह समझने में मदद करेगा कि यह आपकी विशेष समस्या के लिए एक अच्छा फिट होगा या नहीं।



जावा में किसी ऑब्जेक्ट को कॉपी कैसे करें

अगला, मशीन सीखने के तीन प्रकार हैं:

    • पर्यवेक्षित अध्ययन : यह प्रशिक्षण डाटासेट से सीखने के लिए एक एल्गोरिथ्म की एक प्रक्रिया है। पर्यवेक्षित शिक्षण वह जगह है जहां आप इनपुट चर (एक्स) और एक आउटपुट चर (वाई) के बीच एक मैपिंग फ़ंक्शन उत्पन्न करते हैं और आप उनके बीच एक फ़ंक्शन उत्पन्न करने के लिए एक एल्गोरिथ्म का उपयोग करते हैं। यह भविष्य कहनेवाला मॉडलिंग के रूप में भी जाना जाता है जो डेटा का उपयोग करके भविष्यवाणियां करने की एक प्रक्रिया को संदर्भित करता है। कुछ एल्गोरिदम में रैखिक प्रतिगमन, लॉजिस्टिक प्रतिगमन, निर्णय वृक्ष, रैंडम वन और नैवे बेस क्लासिफायर शामिल हैं। हम आगे पर्यवेक्षित शिक्षण के उपयोग के मामले पर चर्चा करेंगे जहां हम मशीन का उपयोग कर प्रशिक्षित करते हैं रसद प्रतिगमन
    • अनसुचित शिक्षा : यह एक ऐसी प्रक्रिया है जिसमें एक मॉडल को एक जानकारी का उपयोग करके प्रशिक्षित किया जाता है जिसे लेबल नहीं किया जाता है। इस प्रक्रिया का उपयोग कक्षाओं में इनपुट डेटा को उनके सांख्यिकीय गुणों के आधार पर क्लस्टर करने के लिए किया जा सकता है। Unsupervised Learning को c भी कहा जाता हैlustering विश्लेषण जिसका अर्थ है वस्तुओं में वर्णित जानकारी या उनके संबंध का वर्णन करने के आधार पर वस्तुओं का समूहीकरण। लक्ष्य यह है कि एक समूह की वस्तुएं एक दूसरे के समान हों लेकिन दूसरे समूह की वस्तुओं से भिन्न हों। कुछ एल्गोरिदम में K- साधन क्लस्टरिंग, श्रेणीबद्ध क्लस्टरिंग आदि शामिल हैं।
    • सुदृढीकरण सीखना: एक अंतरिक्ष या एक पर्यावरण के साथ बातचीत करके सुदृढीकरण सीखना सीख रहा है।एक आरएल एजेंट स्पष्ट रूप से पढ़ाए जाने के बजाय अपने कार्यों के परिणामों से सीखता है। यह अपने पिछले अनुभवों (शोषण) और नए विकल्पों (अन्वेषण) के आधार पर अपने कार्यों का चयन करता है।

स्किटिट लर्न का अवलोकन

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



  • न्यूमपी
  • माटप्लोटलिब
  • SciPy (वैज्ञानिक पायथन)

स्किकिट सीखने को लागू करने के लिए, हमें पहले उपरोक्त पैकेजों को आयात करना होगा। यदि आप इन पुस्तकालयों से परिचित नहीं हैं, तो आप मेरे पिछले ब्लॉगों पर एक नज़र डाल सकते हैं तथा । आप कमांड लाइन का उपयोग करके या यदि आप पी का उपयोग कर रहे हैं, तो आप इन दोनों पैकेजों को डाउनलोड कर सकते हैंआकर्षण, आप इसे सीधे अपनी सेटिंग में जाकर उसी तरह से स्थापित कर सकते हैं जैसे आप अन्य पैकेजों के लिए करते हैं।

अगला, एक समान तरीके से, आपको Sklearn आयात करना होगाScikit सीखना SciPy (वैज्ञानिक पायथन) पर बनाया गया है जिसे Scikit-learn के उपयोग से पहले स्थापित किया जाना चाहिए। आप इसका उल्लेख कर सकते हैं वेबसाइट वही डाउनलोड करने के लिए। इसके अलावा, स्काइप और व्हील पैकेज स्थापित करें यदि यह मौजूद नहीं है, तो आप नीचे दिए गए कमांड में टाइप कर सकते हैं:

पाइप स्थापित स्किपी

मैंने पहले ही इसे डाउनलोड और इंस्टॉल कर लिया है, आप नीचे दिए गए स्क्रीनशॉट को किसी भी भ्रम के लिए संदर्भित कर सकते हैं।

उपरोक्त पुस्तकालयों को आयात करने के बाद, गहरी खुदाई करें और समझें कि वास्तव में Scikit का उपयोग कैसे किया जाता है।

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

हम एक उदाहरण लेते हैं कि हम कहां ले जाएंगे अंक डेटासेट और यह हमारे लिए संख्याओं को वर्गीकृत करेगा, उदाहरण के लिए- 0 1 2 3 4 5 6 7 8 9. नीचे दिए गए कोड को देखें:

आयात matlotlib.pyplot से plt के रूप में sklearn आयात डेटासेट से sklearn आयात svm अंक = datasets.load_digits () प्रिंट (digits.data)

आउटपुट -

[[०.०.५ ..., ०. ... ०.० ...] [०.० ० ..., १०। 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0। 10.:, 12. 1. 0.]]

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

आयात matlotlib.pyplot से plt के रूप में sklearn आयात डेटासेट से sklearn आयात svm अंक = datasets.load_digits () प्रिंट (digits.target) प्रिंट (अंक) [0]

आउटपुट -

[० १ २ ..., 8 ९ //] // डेटा का लक्ष्य [[०. ०.५. १३. ९। १. १. ०. //] // डेटा की छवि [०. ०. / १३। 15. 11. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 12. 0. 0. 8. 0.] [0। 8. 8.. ०. ०. 8.. ०.०. ] [०.०. ०. १०. १०. ०.०. ०]

जैसा कि आप ऊपर देख सकते हैं, लक्ष्य अंक और अंकों की छवि मुद्रित होती है। digits.target के लिए जमीनी सच्चाई देता है अंक डेटासेट, वह संख्या है जो प्रत्येक अंक छवि के अनुरूप है। अगला, डेटा हमेशा एक 2D सरणी होता है जिसमें एक आकृति (n_samples, n_features) होती है, हालांकि मूल डेटा का एक अलग आकार हो सकता है। लेकिन अंकों के मामले में, प्रत्येक मूल नमूना आकार (8,8) की एक छवि है और इसका उपयोग करके पहुँचा जा सकता है अंकछवि।

सीखना और भविष्यवाणी करना

अगला, स्किकिट में जानें, हमने एक डेटासेट (10 संभावित वर्गों के नमूने, शून्य से नौ तक के अंकों का उपयोग किया है) और हमें एक छवि दिए जाने पर अंकों की भविष्यवाणी करने की आवश्यकता होती है। वर्ग की भविष्यवाणी करने के लिए, हमें एक की जरूरत है अनुमान लगाने वाला जो उन वर्गों की भविष्यवाणी करने में मदद करता है जिनसे अनदेखी नमूने संबंधित हैं। शिकिट में, हमारे पास वर्गीकरण के लिए एक अनुमानक है जो एक अजगर वस्तु है जो विधियों को लागू करता है फिट (x, y) तथा भविष्यवाणी (टी)। आइए नीचे दिए गए उदाहरण पर विचार करें:

आयात matlotlib.pyplot से plt के रूप में sklearn से आयात डेटासेट से आयात करें। = digits.data [: - 1], digits.target [: - 1] // डेटा clf.fit (x, y) प्रिंट ('भविष्यवाणी:', clf.predict (digits.data [-1)) को प्रशिक्षित करें। ) // डेटा की भविष्यवाणी करें। plt.imshow (digits.images [-1], cmap = plt.cm.gray_r, प्रक्षेप = 'निकटतम') plt.show ()

आउटपुट -

1796 है
भविष्यवाणी: [8]


उपरोक्त उदाहरण में, हमने पहली बार लंबाई और लोड किए गए 1796 उदाहरण पाए थे। अगला, हमने इस डेटा को एक सीखने के डेटा के रूप में उपयोग किया है, जहां हमें अंतिम तत्व और पहले नकारात्मक तत्व का परीक्षण करने की आवश्यकता है। इसके अलावा, हमें यह जांचने की आवश्यकता है कि मशीन ने सही डेटा की भविष्यवाणी की है या नहीं। उसके लिए, हमने Matplotlib का उपयोग किया था जहां हमने अंकों की छवि प्रदर्शित की थी।इसलिए निष्कर्ष निकालने के लिए, आपके पास अंक डेटा है, आपको लक्ष्य मिला है, आप इसे फिट और भविष्यवाणी करते हैं और इसलिए आप जाने के लिए अच्छे हैं! यह वास्तव में त्वरित और आसान है, क्या यह नहीं है?

जेनकींस बनाम कठपुतली बनाम शेफ

आप एक छवि के साथ लक्ष्य लेबल की कल्पना भी कर सकते हैं, बस नीचे दिए गए कोड को देखें:

sklearn import svm digits = datasets.load_digits () # एक सूची images_and_labels (सूची (zip (digits.images, digits.target)) # हर तत्व के लिए # चित्रों और लक्ष्य लेबल में सम्मिलित हों) से आयात करें। सूची के लिए सूची में (छवि, लेबल) enumerate (images_and_labels [: 8]): # i + 1-th स्थिति plt.subplot (2, 4, सूचकांक + 1) # प्रदर्शन छवियों पर 2X4 के एक सबप्लोट को प्रारंभ करें सभी सबप्लॉट्स में plt.imshow (छवि, cmap = plt.cm.gray_r, प्रक्षेप = 'निकटतम') # प्रत्येक सबप्लॉट plt.title में एक शीर्षक जोड़ें ('प्रशिक्षण:' + str (लेबल)) # प्लॉट plt दिखाएं। प्रदर्शन()

आउटपुट-


जैसा कि आप उपरोक्त कोड में देख सकते हैं, हमने छवियों और लक्ष्य लेबल को एक सूची में शामिल करने और फिर इसे एक चर में सहेजने के लिए ’zip 'फ़ंक्शन का उपयोग किया है, images_and_labels कहते हैं। उसके बाद, हमने प्रत्येक स्थिति में पहले 8 तत्वों को 2 बाय 4 के ग्रिड में अनुक्रमित किया है। उसके बाद, हमने सिर्फ Matplotlib की मदद से चित्र प्रदर्शित किए हैं और शीर्षक को 'प्रशिक्षण' के रूप में जोड़ा है।

उदाहरण - लॉजिस्टिक रिग्रेशन का उपयोग कर भविष्यवाणी

समस्या का विवरण - एक कार कंपनी ने बाजार में एक नई एसयूवी जारी की है। अपनी एसयूवी की बिक्री के बारे में पिछले आंकड़ों का उपयोग करते हुए, वे उन लोगों की श्रेणी की भविष्यवाणी करना चाहते हैं जो इसे खरीदने में रुचि रखते हैं।

इसके लिए, हम एक डेटासेट देखें जहाँ मेरे पास है उपयोगकर्ता आईडी, लिंग, आयु, अनुमानित वेतन और खरीदी गई कॉलम के रूप में। यह सिर्फ एक नमूना डेटासेट है, आप पूरे डेटासेट को डाउनलोड कर सकते हैं यहाँ । एक बार जब हम pyCharm में डेटा आयात करते हैं, तो यह कुछ इस तरह दिखता है।

अब इस डेटा को समझते हैं। जैसा कि आप ऊपर दिए गए डेटासेट में देख सकते हैं, हमारे पास आईडी, लिंग, आयु आदि जैसी श्रेणियां हैं। अब इन श्रेणियों के आधार पर, हम अपनी मशीन को प्रशिक्षित करने और नंबर की भविष्यवाणी करने जा रहे हैं। खरीद का। तो यहाँ, हमारे पास है स्वतंत्र प्रभावित करने वाली वस्तुएँ 'आयु', 'अपेक्षित वेतन' और निर्भर चर जैसा कि 'खरीदा'। अब हम पर्यवेक्षित शिक्षण लागू करेंगे, अर्थात् लॉजिस्टिक रिग्रेशन अल्गोरिथम मौजूदा डेटा का उपयोग करके खरीद की संख्या का पता लगाने के लिए।

पहले, आइए लॉजिस्टिक रिग्रेशन का अवलोकन करें।

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

  • हां और ना
  • सही और गलत
  • उच्च और निम्न
  • पास और फेल

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

सेटिंग्स -> पैकेज जोड़ें -> पंडों -> स्थापित करें

इसके बाद, हम डाटासेट और अलग-अलग निर्भर चर (खरीदे गए) और स्वतंत्र चर (आयु, वेतन) को आयात करेंगे:

डेटासेट = pd.read_csv ('Social_Network_Ads.csv') X = डेटासेट .iloc [:, [2, 3]]। मान y = डेटासेट .iloc [:, 4] .values ​​प्रिंट (X) प्रिंट (y)

अगला चरण डेटा का प्रशिक्षण और परीक्षण होगा। एक सामान्य रणनीति सभी लेबल किए गए डेटा को लेना है और प्रशिक्षण और परीक्षण उपसमुच्चय में विभाजित करना है, जो आमतौर पर प्रशिक्षण उपसमुच्चय के लिए 70-80% और परीक्षण उपसमुच्चय के लिए 20-30% के अनुपात के साथ लिया जाता है। इसलिए, हमने cross_validation का उपयोग करके प्रशिक्षण और परीक्षण सेट बनाए हैं।

sklearn.cross_validation इंपोर्ट ट्रेन_टैस्ट_सप्लिट X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25, random_state = 0) से

हम नीचे दिखाए गए अनुसार StandarScaler का उपयोग करके बेहतर प्रदर्शन के लिए इनपुट मानों को स्केल कर सकते हैं:

sklearn.preprocessing आयात से StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

अब हम अपना लॉजिस्टिक रिग्रेशन मॉडल बनाएंगे।

sklearn.linear_model से आयात करें LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

हम इसका उपयोग कर सकते हैं और हमारे परीक्षण सेट के परिणामों की भविष्यवाणी कर सकते हैं।

y_pred = classifier.predict (X_test)

अब, हम जांच कर सकते हैं कि कितनी भविष्यवाणियां सटीक थीं और कितने का उपयोग नहीं कर रहे थे असमंजस का जाल । आइए हम वाई को सकारात्मक उदाहरणों और एन को नकारात्मक उदाहरणों के रूप में परिभाषित करते हैं। चार परिणाम 2 * 2 भ्रम मैट्रिक्स में तैयार किए गए हैं, जैसा कि नीचे दर्शाया गया है:

sklearn.metrics से कन्फ्यूजन_मेट्रिक्स सेमी = कन्फ्यूजन_मेट्रिक्स (y_test, y_pred) प्रिंट (सेमी) आयात करें

आउटपुट-

[[६५ ३] [] २४]]

अगला, हमारे भ्रम मैट्रिक्स के आधार पर, हम सटीकता की गणना कर सकते हैं। तो हमारे उपरोक्त उदाहरण में, सटीकता होगी:

= टीपी + टीएन / एफएन + एफपी

= 65 + 24/65 +3+ 8 + 24

= 89%

हमने यह मैन्युअल रूप से किया है! अब देखते हैं कि मशीन हमारे लिए उसी की गणना कैसे करती है, इसके लिए हमारे पास एक इनबिल्ट फंक्शन _ सटीकता_स्कोर ’है जो सटीकता की गणना करता है और इसे प्रिंट करता है, जैसा कि नीचे दिखाया गया है:

sklearn.metrics से आयात सटीकता__कोर / // फ़ंक्शन सटीकता_सर्क प्रिंट आयात करें (सटीकता_एसकोर (y_test, y_pred) * 100) // सटीकता को प्रिंट करता है

आउटपुट -

89.0

हुर्रे! हमने इस प्रकार सफलतापूर्वक 89% की सटीकता के साथ स्किकिट लर्न का उपयोग करके लॉजिस्टिक रिग्रेशन लागू किया है।

यहां क्लिक करें उपरोक्त भविष्यवाणी का पूरा पूरा स्रोत पाने के लिए पाइथन स्किटिट का उपयोग करके लाइब्रेरी सीखें।

इसके साथ, हमने कई लोकप्रिय एल्गोरिदम अजगर में से केवल एक को कवर किया है।हमने लाइब्रेरी को सीखने के लिए स्किकिट की सभी बुनियादी बातों को कवर किया है,तो आप अभी से अभ्यास शुरू कर सकते हैं। जितना अधिक आप अभ्यास करेंगे उतना ही आप सीखेंगे। आगे अजगर ट्यूटोरियल ब्लॉग के लिए बने रहें!

स्ट्रिंग को डेट में कैसे बदलें

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इस “स्किकिट लर्न” ब्लॉग के टिप्पणी अनुभाग में उल्लेख करें और हम जल्द से जल्द आपके पास वापस आ जाएंगे। अपने विभिन्न अनुप्रयोगों के साथ अजगर का गहराई से ज्ञान प्राप्त करने के लिए, आप कर सकते हैं 24/7 समर्थन और आजीवन पहुंच के साथ लाइव ऑनलाइन प्रशिक्षण के लिए।