मशीन लर्निंग में वर्गीकरण के लिए स्किकिट-लर्न के साथ शुरुआत करना

मशीन लर्निंग में वर्गीकरण के लिए स्किकिट-लर्न के साथ शुरुआत करना

स्रोत नोड: 1780638
मशीन लर्निंग में वर्गीकरण के लिए स्किकिट-लर्न के साथ शुरुआत करना
संपादक द्वारा छवि
 

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

pip install scikit-learn

हम स्किकिट-लर्न के डेटासेट मॉड्यूल में उपलब्ध "वाइन" डेटासेट का उपयोग करेंगे। इस डेटासेट में कुल 178 नमूने और 3 वर्ग शामिल हैं। डेटासेट पहले से ही पूर्व-संसाधित है और फीचर वैक्टर में परिवर्तित हो गया है, इसलिए, हम सीधे अपने मॉडल को प्रशिक्षित करने के लिए इसका उपयोग कर सकते हैं।

from sklearn.datasets import load_wine X, y = load_wine(return_X_y=True)

हम 67% डेटा प्रशिक्षण के लिए और शेष 33% परीक्षण के लिए रखेंगे।

from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42
)

 

अब, हम अलग-अलग जटिलताओं वाले 5 अलग-अलग मॉडलों के साथ प्रयोग करेंगे और अपने डेटासेट पर उनके परिणामों का मूल्यांकन करेंगे।

model_lr = LogisticRegression()
model_lr.fit(X_train, y_train)
y_pred_lr = model_lr.predict(X_test) print("Accuracy Score: ", accuracy_score(y_pred_lr, y_test))
print(classification_report(y_pred_lr, y_test))

 

उत्पादन

Accuracy Score: 0.9830508474576272 precision recall f1-score support 0 1.00 0.95 0.98 21 1 0.96 1.00 0.98 23 2 1.00 1.00 1.00 15 accuracy 0.98 59 macro avg 0.99 0.98 0.98 59
weighted avg 0.98 0.98 0.98 59
model_knn = KNeighborsClassifier(n_neighbors=1)
model_knn.fit(X_train, y_train)
y_pred_knn = model_knn.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_knn, y_test))
print(classification_report(y_pred_knn, y_test))

 

उत्पादन 

Accuracy Score: 0.7796610169491526 precision recall f1-score support 0 0.90 0.78 0.84 23 1 0.75 0.82 0.78 22 2 0.67 0.71 0.69 14 accuracy 0.78 59 macro avg 0.77 0.77 0.77 59
weighted avg 0.79 0.78 0.78 59

 

पैरामीटर 'n_neighbors=2' बदलने पर हम सटीकता के मूल्य में कमी देखते हैं। इसलिए, यह दर्शाता है कि डेटा काफी सरल है और विचार करने के लिए एक ही पड़ोसी के साथ बेहतर सीख प्राप्त करता है। 

उत्पादन 

Accuracy Score: 0.6949152542372882 precision recall f1-score support 0 0.90 0.72 0.80 25 1 0.75 0.69 0.72 26 2 0.33 0.62 0.43 8 accuracy 0.69 59 macro avg 0.66 0.68 0.65 59
weighted avg 0.76 0.69 0.72 59
from sklearn.naive_bayes import GaussianNB model_nb = GaussianNB()
model_nb.fit(X_train, y_train)
y_pred_nb = model_nb.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_nb, y_test))
print(classification_report(y_pred_nb, y_test))

 

उत्पादन

Accuracy Score: 1.0 precision recall f1-score support 0 1.00 1.00 1.00 20 1 1.00 1.00 1.00 24 2 1.00 1.00 1.00 15 accuracy 1.00 59 macro avg 1.00 1.00 1.00 59
weighted avg 1.00 1.00 1.00 59
from sklearn.tree import DecisionTreeClassifier model_dtclassifier = DecisionTreeClassifier()
model_dtclassifier.fit(X_train, y_train)
y_pred_dtclassifier = model_dtclassifier.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_dtclassifier, y_test))
print(classification_report(y_pred_dtclassifier, y_test))

 

उत्पादन

Accuracy Score: 0.9661016949152542 precision recall f1-score support 0 0.95 0.95 0.95 20 1 1.00 0.96 0.98 25 2 0.93 1.00 0.97 14 accuracy 0.97 59 macro avg 0.96 0.97 0.97 59
weighted avg 0.97 0.97 0.97 59
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import RandomizedSearchCV def get_best_parameters(): params = { "n_estimators": [10, 50, 100], "max_features": ["auto", "sqrt", "log2"], "max_depth": [5, 10, 20, 50], "min_samples_split": [2, 4, 6], "min_samples_leaf": [2, 4, 6], "bootstrap": [True, False], } model_rfclassifier = RandomForestClassifier(random_state=42) rf_randomsearch = RandomizedSearchCV( estimator=model_rfclassifier, param_distributions=params, n_iter=5, cv=3, verbose=2, random_state=42, ) rf_randomsearch.fit(X_train, y_train) best_parameters = rf_randomsearch.best_params_ print("Best Parameters:", best_parameters) return best_parameters parameters_rfclassifier = get_best_parameters() model_rfclassifier = RandomForestClassifier( **parameters_rfclassifier, random_state=42
) model_rfclassifier.fit(X_train, y_train) y_pred_rfclassifier = model_rfclassifier.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_rfclassifier, y_test))
print(classification_report(y_pred_rfclassifier, y_test))

 

उत्पादन


Best Parameters: {'n_estimators': 100, 'min_samples_split': 6, 'min_samples_leaf': 4, 'max_features': 'log2', 'max_depth': 5, 'bootstrap': True}
Accuracy Score: 0.9830508474576272 precision recall f1-score support 0 1.00 0.95 0.98 21 1 0.96 1.00 0.98 23 2 1.00 1.00 1.00 15 accuracy 0.98 59 macro avg 0.99 0.98 0.98 59
weighted avg 0.98 0.98 0.98 59

 

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

मॉडल शुद्धता टिप्पणियों
रसद प्रतिगमन 98.30% तक अत्यधिक सटीकता प्राप्त करता है. मॉडल परीक्षण डेटासेट पर अच्छी तरह से सामान्यीकरण करने में सक्षम है।
K-निकटतम पड़ोसी 77.96% तक एल्गोरिदम डेटा प्रतिनिधित्व को अच्छी तरह से सीखने में सक्षम नहीं है।
भोले भाले 100% तक मॉडल कम जटिल है इसलिए यह पूर्ण सटीकता प्राप्त करने के लिए डेटा को ओवरफिट करता है।
निर्णय वृक्ष वर्गीकरण 96.61% तक अच्छी सटीकता प्राप्त करता है.
यादृच्छिक वन वर्गीकरण 98.30% तक एक समूह-आधारित दृष्टिकोण होने के कारण यह डिसीज़न ट्री से बेहतर प्रदर्शन करता है। हाइपरपैरामीटर ट्यूनिंग करने से यह लॉजिस्टिक रिग्रेशन के समान सटीकता प्राप्त करता है।

In this tutorial, we learned how to get started to build and train machine learning models in scikit-learn. We implemented and evaluated a few algorithms to get a basic idea about their performance. One can always adopt advanced strategies for feature engineering, hyperparameter tuning or training to improve performance. To read more about the functionalities that scikit-learn offers, head over to the official documentation - स्किकिट-लर्न के साथ मशीन लर्निंग का परिचय, स्किकिट-लर्न के साथ पायथन में मशीन लर्निंग.

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

समय टिकट:

से अधिक केडनगेट्स

केडनगेट्स™ समाचार 22:n01, 5 जनवरी: 3 आपके पायथन कोड के निष्पादन को ट्रैक और विज़ुअलाइज़ करने के लिए उपकरण; 6 भविष्य कहनेवाला मॉडल हर शुरुआती डेटा वैज्ञानिक को मास्टर होना चाहिए

स्रोत नोड: 1586872
समय टिकट: जनवरी 5, 2022

केडीनगेट्स न्यूज़, 31 मई: बार्ड फॉर डेटा साइंस चीट शीट • चैटजीपीटी, जीपीटी-10, बार्ड और अन्य एलएलएम का पता लगाने के लिए शीर्ष 4 उपकरण - केडीनगेट्स

स्रोत नोड: 2699915
समय टिकट: 31 मई 2023

अग्रणी प्रयोग विशेषज्ञ रॉनी कोहावी (पूर्व-अमेज़ॅन, एयरबीएनबी, माइक्रोसॉफ्ट) से भरोसेमंद A/B परीक्षणों को डिज़ाइन, मापना और कार्यान्वित करना सीखें।

स्रोत नोड: 1928138
समय टिकट: जनवरी 24, 2023