पायथन में अपनी पहली मशीन लर्निंग क्लासिफायर का निर्माण



यह लेख आपको स्क्रैच से अजगर में मशीन लर्निंग क्लासिफायर बनाने में मदद करेगा। यह आपको वर्गीकरण का विस्तृत ज्ञान भी प्रदान करेगा।

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

मशीन लर्निंग का अवलोकन

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





मशीन लर्निंग क्लासिफायर

जावा में क्या करता है

मशीन लर्निंग में निर्णय लेने, अपने कार्यों के परिणामों का आकलन करने और क्रमिक रूप से बेहतर परिणाम प्राप्त करने के लिए अपने व्यवहार में सुधार करने के लिए मशीनों की क्षमता शामिल होती है।



सीखने की प्रक्रिया तीन प्रमुख तरीकों से होती है

  • पर्यवेक्षित अध्ययन
  • अनसुनी लर्निंग
  • सुदृढीकरण सीखना

मशीन लर्निंग क्लासिफायर के लिए एक टेम्प्लेट

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



उपयोग करने के लिए कमांड प्रॉम्प्ट के माध्यम से स्किकिट-जानें स्थापित करें:

पाइप स्थापित -U scikit- सीखें

यदि आप एक एनाकोंडा उपयोगकर्ता हैं, एनाकोंडा प्रॉम्प्ट पर आप उपयोग कर सकते हैं:

conda install scikit-learn

स्थापना के लिए आपके सिस्टम पर NumPy और SciPy पैकेजों की पूर्व स्थापना आवश्यक है।

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

स्टेप 1 - आवश्यक पुस्तकालय आयात करें

सुन्नत के रूप में आयात एनपी आयात पांडा के रूप में पीडी आयात matplotlib.pyplot के रूप में पीटी

चरण 2 - डेटासेट आयात करें

डेटासेट = pd.read_csv ()

फिर हम डेटासेट को स्वतंत्र और निर्भर चर में विभाजित करते हैं। स्वतंत्र चर इनपुट डेटा होगा, और आश्रित चर आउटपुट डेटा है।

php print_r to string
X = डेटासेट .iloc []। मान y = डेटासेट .iloc []। मान

चरण 3 - लापता डेटा संभालना

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

sklearn.preprocessing आयात आयात से Imputer imputer = Imputer (अनुपलब्ध_वेल्यूज़ = 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = impot.transform (X [])

चरण 4 - श्रेणीबद्ध चर को सांख्यिक चर में बदलें

से sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) लेबलencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

अब, एन्कोडिंग के बाद, यह हो सकता है कि मशीन सांकेतिक डेटा को एन्कोड किए गए कॉलम की रैंकिंग के रूप में मान ले। इस प्रकार, समान वजन प्रदान करने के लिए, हमें OneHotEncoder वर्ग का उपयोग करके संख्याओं को एक-गर्म वैक्टर में बदलना है।

sklearn.preprocessing आयात से OneHotEncoder oneHE = OneHotEncoder (वर्गीकृत) = []) X = oneHE.fit_transform (X) .toarray ()

चरण 5 - स्केलिंग करें

यह कदम चरों की बेमेल तराजू से उत्पन्न विसंगतियों से निपटने के लिए है। इसलिए, हम उन सभी को एक ही सीमा में मापते हैं, ताकि वे मॉडल पर इनपुट करते समय समान वजन प्राप्त करें। हम इस उद्देश्य के लिए StandardScaler वर्ग की एक वस्तु का उपयोग करते हैं।

sklearn.preprocessing आयात से StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

चरण 6 - डेटा और प्रशिक्षण परीक्षण में डेटासेट विभाजित करें

प्रीप्रोसेसिंग के अंतिम चरण के रूप में, डेटासेट को प्रशिक्षण सेट और परीक्षण सेट में विभाजित करने की आवश्यकता होती है। ट्रेन-परीक्षण विभाजन का मानक अनुपात 75% -25% है। हम आवश्यकताओं के अनुसार संशोधित कर सकते हैं। Train_test_split () फ़ंक्शन हमारे लिए ऐसा कर सकता है।

sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_sest = 0.25) से

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

झालर से। आयात क्लासिफायर = () क्लासिफायर.फिट (X_train, y_train)

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

y_pred = classifier.predict (X_test)

देखने के परिणाम: एक क्लासिफायरियर के प्रदर्शन का आकलन सटीकता, सटीक, रिकॉल और एफ 1-स्कोर के मापदंडों से किया जा सकता है। ये मान वर्गीकरण_रपोर्ट () के रूप में ज्ञात विधि का उपयोग करके देखे जा सकते हैं। t को एक भ्रम मैट्रिक्स के रूप में भी देखा जा सकता है जो हमें यह जानने में मदद करता है कि किस श्रेणी के कितने डेटा को सही तरीके से वर्गीकृत किया गया है।

sklearn.metrics से confusion_matrix cm = confusion_matrix (y_test, y_pred) प्रिंट (cm) से sklearn.metrics आयात वर्गीकरण_report target_names = [] प्रिंट (वर्गीकरण_report (y_test, y_pred, target_names = target_names)) आयात करें

मशीन लर्निंग क्लासिफायर समस्या

हम बहुत लोकप्रिय और सरल आइरिस डेटासेट का उपयोग करेंगे, जिसमें 3 श्रेणियों में फूलों के आयाम हैं - आइरिस-सेटोसा, आइरिस-वर्सीकोलर, और आइरिस-वर्जिनिका। डेटासेट में 150 प्रविष्टियाँ हैं।

बस समय संकलक जावा में

# पुस्तकालयों का आयात np आयात के रूप में npy आयात matplotlib.pyplot के रूप में plt आयात पांडा pd के रूप में # डेटासेट डाटासेट को आयात करना = pd.read_csv ('iris.csv')

अब डेटासेट देखें।

डेटासेट ()

हमारे पास 4 स्वतंत्र चर (आईडी को छोड़कर) हैं, अर्थात् स्तंभ संख्या 1-4, और स्तंभ 5 आश्रित चर है। इसलिए हम उन्हें अलग कर सकते हैं।

X = डेटासेट .iloc [:, 1: 5] .values ​​y = सिसिलियन.iloc [:, 5%]

अब हम डेटासेट को प्रशिक्षण और परीक्षण में विभाजित कर सकते हैं।

# स्केलेमर.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25) से प्रशिक्षण सेट और टेस्ट सेट में डेटासेट विभाजित करना

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

# Sklearn.linear_model आयात से मॉडल बनाना और प्रशिक्षित करना LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # परीक्षा का पूर्वानुमान लगाना y_pred = classifier.predict (X_test) परिणाम देता है।

अंतिम चरण प्रशिक्षित मॉडल के प्रदर्शन का विश्लेषण करना होगा।

# Sklearn.metrics से कन्फ्यूजन मैट्रिक्स बनाना, confusion_matrix cm = confusion_matrix (y_test, y_pred) प्रिंट (सेमी) आयात करता है

इससे हमें पता चलता है कि पहली श्रेणी की 13 प्रविष्टियाँ, दूसरी की 11, और तीसरी श्रेणी की 9 मॉडल की सही भविष्यवाणी की गई है।

# स्केलेरन.मेट्रिक्स आयात वर्गीकरण_सेपोर्ट टार्गेट_रेम्प्स = [ames आइरिस-सेटोसा ’, ris आइरिस-वर्सीकोलर’, ris आइरिस-वर्जिनिका ’प्रिंट (वर्गीकरण_रपोर्ट, y_prest, y_pred, target_names = लक्ष्य_नाम) से सटीकता, सटीकता, याद और एफ-स्कोर बनाना )

रिपोर्ट हमारे परीक्षण सेट पर मॉडल की शुद्धता, याद, एफ 1-स्कोर और सटीकता मूल्यों को दर्शाती है, जिसमें 38 प्रविष्टियां (25% डेटासेट) शामिल हैं।

बधाई, आपने पायथन में अपनी पहली मशीन लर्निंग क्लासिफायर को सफलतापूर्वक बनाया और लागू किया है! पर गहराई से ज्ञान प्राप्त करने के लिए इसके विभिन्न अनुप्रयोगों के साथ, आप 24/7 समर्थन और आजीवन पहुंच के साथ लाइव पायथन ऑनलाइन प्रशिक्षण के लिए नामांकन कर सकते हैं।