लगभग किसी भी मशीन लर्निंग प्रोजेक्ट में, हम डेटासेट पर विभिन्न मॉडलों को प्रशिक्षित करते हैं और सर्वश्रेष्ठ प्रदर्शन वाले मॉडल का चयन करते हैं। हालाँकि, इसमें सुधार की गुंजाइश है क्योंकि हम निश्चित रूप से नहीं कह सकते कि यह विशेष मॉडल मौजूदा समस्या के लिए सर्वोत्तम है। इसलिए, हमारा उद्देश्य किसी भी संभव तरीके से मॉडल में सुधार करना है। ग्रिड सर्चसीवी के साथ हाइपरपैरामीटर के प्रदर्शन में एक महत्वपूर्ण कारक उनके हाइपरपैरामीटर हैं, एक बार जब हम इन हाइपरपैरामीटर के लिए उचित मान निर्धारित करते हैं, तो मॉडल के प्रदर्शन में काफी सुधार हो सकता है। इस लेख में, हम जानेंगे कि हम GridSearchCV का उपयोग करके किसी मॉडल के हाइपरपैरामीटर के लिए इष्टतम मान कैसे पा सकते हैं।
ग्रिड सर्चसीवी क्या है?
what is grid searchcv in Hindi
GridSearchCV किसी दिए गए मॉडल के लिए इष्टतम मान निर्धारित करने के लिए हाइपरपैरामीटर ट्यूनिंग करने की प्रक्रिया है। जैसा कि ऊपर उल्लेख किया गया है, किसी मॉडल का प्रदर्शन महत्वपूर्ण रूप से हाइपरपैरामीटर के मूल्य पर निर्भर करता है। ध्यान दें कि हाइपरपैरामीटर के सर्वोत्तम मूल्यों को पहले से जानने का कोई तरीका नहीं है, इसलिए आदर्श रूप से, हमें इष्टतम मूल्यों को जानने के लिए सभी संभावित मूल्यों को आज़माने की ज़रूरत है। इसे मैन्युअल रूप से करने में काफी समय और संसाधन लग सकते हैं और इस प्रकार हम हाइपरपैरामीटर की ट्यूनिंग को स्वचालित करने के लिए ग्रिड सर्चसीवी का उपयोग करते हैं।
ग्रिडसर्चसीवी एक फ़ंक्शन है जो स्किकिट-लर्न (या एसके-लर्न) मॉडल_सिलेक्शन पैकेज में आता है। इसलिए यहां ध्यान देने योग्य एक महत्वपूर्ण बात यह है कि हमें कंप्यूटर पर स्किकिट लर्न लाइब्रेरी स्थापित करने की आवश्यकता है। यह फ़ंक्शन पूर्वनिर्धारित हाइपरपैरामीटर के माध्यम से लूप करने और आपके अनुमानक (मॉडल) को आपके प्रशिक्षण सेट पर फिट करने में मदद करता है। तो, अंत में, हम सूचीबद्ध हाइपरपैरामीटर से सर्वोत्तम पैरामीटर का चयन कर सकते हैं।
2024] आर्टिफिशियल इंटेलिजेंस में विशेषज्ञ प्रणालियाँ | expert systems in ai in hindi
ग्रिड सर्चसीवी कैसे काम करता है?
How does Grid SearchCV work in Hindi
जैसा कि ऊपर बताया गया है, हम ग्रिड सर्चसीवी फ़ंक्शन में हाइपरपैरामीटर के लिए पूर्वनिर्धारित मान पास करते हैं। हम एक शब्दकोश को परिभाषित करके ऐसा करते हैं जिसमें हम एक विशेष हाइपरपैरामीटर का उल्लेख उन मूल्यों के साथ करते हैं जो इसे ले सकते हैं। यहाँ इसका एक उदाहरण है
{‘सी’: [0.1, 1, 10, 100, 1000], ‘गामा’: [1, 0.1, 0.01, 0.001, 0.0001], ‘कर्नेल’: [‘आरबीएफ’, ‘रैखिक’, ‘सिग्मॉइड’] }
यहां सी, गामा और कर्नेल एसवीएम मॉडल के कुछ हाइपरपैरामीटर हैं। ध्यान दें कि शेष हाइपरपैरामीटर उनके डिफ़ॉल्ट मानों पर सेट किए जाएंगे
GridSearchCV शब्दकोश में पारित मूल्यों के सभी संयोजनों का प्रयास करता है और क्रॉस-वैलिडेशन विधि का उपयोग करके प्रत्येक संयोजन के लिए मॉडल का मूल्यांकन करता है। इसलिए इस फ़ंक्शन का उपयोग करने के बाद हमें हाइपरपैरामीटर के प्रत्येक संयोजन के लिए सटीकता/हानि मिलती है और हम सबसे अच्छे प्रदर्शन वाले को चुन सकते हैं।
ग्रिड सर्चसीवी के साथ हाइपरपैरामीटर का उपयोग कैसे करें?
How to use Grid SearchCV in Hindi
इस अनुभाग में, हम देखेंगे कि GridSearchCV का उपयोग कैसे करें और यह भी पता लगाएंगे कि यह मॉडल के प्रदर्शन को कैसे बेहतर बनाता है।
सबसे पहले, आइए देखें कि GridSearchCV फ़ंक्शन द्वारा लिए गए विभिन्न तर्क क्या हैं:
sklearn.model_selection.GridSearchCV(estimator, param_grid,scoring=None, n_jobs=None, iid='deprecated', refit=True, cv=None, verbose=0, pre_dispatch='2*n_jobs', error_score=nan, return_train_score=False) |
हम इनमें से कुछ मापदंडों का संक्षेप में वर्णन करने जा रहे हैं और बाकी आप मूल दस्तावेज़ पर देख सकते हैं
1.एस्टीमेटर – उस मॉडल इंस्टेंस को पास करें जिसके लिए आप हाइपरपैरामीटर्स की जांच करना चाहते हैं।
2.params_grid – शब्दकोश ऑब्जेक्ट जिसमें हाइपरपैरामीटर हैं जिन्हें आप आज़माना चाहते हैं
3.स्कोरिंग – मूल्यांकन मीट्रिक जिसे आप उपयोग करना चाहते हैं, आप बस मूल्यांकन मीट्रिक की एक वैध स्ट्रिंग/ऑब्जेक्ट पास कर सकते हैं
4.cv – आपके पास क्रॉस-वैलिडेशन की संख्या है हाइपरपैरामीटर के प्रत्येक चयनित सेट के लिए प्रयास करने के लिए
5.verbose – ग्रिड सर्चसीवी में डेटा फिट करते समय विस्तृत प्रिंट आउट प्राप्त करने के लिए आप इसे 1 पर सेट कर सकते हैं
6.n_jobs – इस कार्य के लिए आप समानांतर में चलने वाली प्रक्रियाओं की संख्या यदि यह – 1 यह सभी उपलब्ध प्रोसेसर का उपयोग करेगा।
हाइपरपैरामीटर ट्यूनिंग के प्रकार
Types of hyperparameter tuning in Hindi
अब, आइए देखें कि अपने मॉडल की सटीकता में सुधार के लिए ग्रिड सर्चसीवी का उपयोग कैसे करें। यहां मैं मॉडल को दो बार प्रशिक्षित करने जा रहा हूं, एक बार ग्रिड सर्चसीवी (डिफ़ॉल्ट हाइपरपैरामीटर का उपयोग करके) का उपयोग किए बिना और दूसरी बार हम उपलब्ध डेटासेट के लिए हाइपरपैरामीटर के इष्टतम मान खोजने के लिए ग्रिड सर्चसीवी का उपयोग करेंगे। मैं प्रसिद्ध स्तन कैंसर विस्कॉन्सिन (डायग्नोस्टिक) डेटा सेट का उपयोग कर रहा हूं जिसे मैं सीधे यहां स्किकिट-लर्न लाइब्रेरी से आयात कर रहा हूं।
- मैनुअल ट्यूनिंग (Manual Tuning)
- ग्रिड खोज (Grid Search)
- यादृच्छिक खोज (Random Search)
- बायेसियन अनुकूलन (Bayesian Optimization)
- ग्रेडिएंट-आधारित अनुकूलन (Gradient-based Optimization)
- विकासवादी एल्गोरिदम (Evolutionary Algorithms)
- दस्यु-आधारित तरीके (Bandit-based Methods)
12345678910111213141516171819202122 | #import all necessary libraries import sklearn from sklearn.datasets import load_breast_cancer from sklearn.metrics import classification_report, confusion_matrix from sklearn.datasets import load_breast_cancer from sklearn.svm import SVC from sklearn.model_selection import GridSearchCV from sklearn.model_selection import train_test_split #load the dataset and split it into training and testing sets dataset = load_breast_cancer() X = dataset.data Y = dataset.target X_train, X_test, y_train, y_test = train_test_split( X,Y,test_size = 0.30 , random_state = 101 ) # train the model on train set without using GridSearchCV model = SVC() model.fit(X_train, y_train) # print prediction results predictions = model.predict(X_test) print (classification_report(y_test, predictions)) |
OUTPUT: precision recall f1-score support 0 0.95 0.85 0.90 66 1 0.91 0.97 0.94 105 accuracy 0.92 171 macro avg 0.93 0.91 0.92 171 weighted avg 0.93 0.92 0.92 171 |
2324252627282930313233343536373839 | # defining parameter range param_grid = { 'C' : [ 0.1 , 1 , 10 , 100 ], 'gamma' : [ 1 , 0.1 , 0.01 , 0.001 , 0.0001 ], 'gamma' :[ 'scale' , 'auto' ], 'kernel' : [ 'linear' ]} grid = GridSearchCV(SVC(), param_grid, refit = True , verbose = 3 ,n_jobs = - 1 ) # fitting the model for grid search grid.fit(X_train, y_train) # print best parameter after tuning print (grid.best_params_) grid_predictions = grid.predict(X_test) # print classification report print (classification_report(y_test, grid_predictions)) |
Output: {'C': 100, 'gamma': 'scale', 'kernel': 'linear'} precision recall f1-score support 0 0.97 0.91 0.94 66 1 0.94 0.98 0.96 105 accuracy 0.95 171 macro avg 0.96 0.95 0.95 171 weighted avg 0.95 0.95 0.95 171 |
आप में से बहुत से लोग सोच सकते हैं कि {‘सी’: 100, ‘गामा’: ‘स्केल’, ‘कर्नेल’: ‘लीनियर’} एसवीएम मॉडल के लिए हाइपरपैरामीटर के लिए सर्वोत्तम मान हैं। ऐसा नहीं है, जिस डेटासेट पर हम काम कर रहे हैं उसके लिए उपर्युक्त हाइपरपैरामीटर सर्वोत्तम हो सकते हैं। लेकिन किसी भी अन्य डेटासेट के लिए, एसवीएम मॉडल में हाइपरपैरामीटर के लिए अलग-अलग इष्टतम मान हो सकते हैं जो इसके प्रदर्शन में सुधार कर सकते हैं।
2024] मशीन लर्निंग में पैटर्न पहचान | ai pattern recognition in hindi
पैरामीटर और हाइपरमीटर के बीच अंतर
Difference between parameter and hyperparameter in Hindi
पैरामीटर | हाइपरपैरामीटर |
कॉन्फ़िगरेशन मॉडल के पैरामीटर मॉडल के आंतरिक हैं। | हाइपरपैरामीटर ऐसे पैरामीटर हैं जो स्पष्ट रूप से निर्दिष्ट होते हैं और प्रशिक्षण प्रक्रिया को नियंत्रित करते हैं। |
भविष्यवाणियों के लिए मापदंडों के उपयोग की आवश्यकता होती है। | मॉडल अनुकूलन के लिए हाइपरपैरामीटर के उपयोग की आवश्यकता होती है। |
जब मॉडल को प्रशिक्षित किया जा रहा हो तो इन्हें निर्दिष्ट या अनुमान लगाया जाता है। | इन्हें मॉडल के प्रशिक्षण की शुरुआत से पहले स्थापित किया जाता है। |
यह मॉडल का आंतरिक मामला है. | यह मॉडल के बाहर है. |
इन्हें मॉडल द्वारा स्वयं ही सीखा और सेट किया जाता है। | इन्हें मशीन लर्निंग इंजीनियर/प्रैक्टिशनर द्वारा मैन्युअल रूप से सेट किया जाता है। |
जब आप क्रॉस-वैलिडेशन का उपयोग करते हैं , तो आप अपने मॉडल का आकलन करने में उपयोग करने के लिए अपने डेटा का एक हिस्सा अलग रख देते हैं। क्रॉस-सत्यापन कई तरीकों से किया जा सकता है। सबसे आसान विचार यह है कि प्रशिक्षण के लिए 70% डेटा का उपयोग किया जाए (मैं यहां एक संख्या बना रहा हूं; इसका 70% होना जरूरी नहीं है) और शेष 30% का उपयोग मॉडल के प्रदर्शन का मूल्यांकन करने के लिए किया जाए। ओवरफिटिंग से बचने के लिए, आपको मॉडल के प्रशिक्षण और मूल्यांकन के लिए अलग-अलग डेटा की आवश्यकता होगी। अन्य (कुछ अधिक कठिन) क्रॉस-वैलिडेशन दृष्टिकोण, जैसे कि के-फोल्ड क्रॉस-वैलिडेशन, भी आमतौर पर व्यवहार में नियोजित होते हैं।
यह हमें इस लेख के अंत में लाता है जहां हमने सीखा कि सर्वोत्तम प्रदर्शन प्राप्त करने के लिए अपने मॉडल के इष्टतम हाइपरपैरामीटर कैसे खोजें।
Top 20] आर्टिफिशियल इंटेलिजेंस बुक 2024 | Best artificial intelligence books in hindi
निष्कर्ष (Conclusion)
हाइपरपैरामीटर ट्यूनिंग मॉडल हाइपरपैरामीटर के लिए सर्वोत्तम मानों का चयन करके मशीन लर्निंग मॉडल के प्रदर्शन को अनुकूलित करने की प्रक्रिया है। सटीक मॉडल विकसित करने में यह एक महत्वपूर्ण कदम है, क्योंकि सीखने की दर, युग, बैच आकार आदि जैसे हाइपरपैरामीटर का मॉडल प्रशिक्षण और मूल्यांकन पर बहुत बड़ा प्रभाव पड़ता है। ग्रिड सर्च और रैंडम सर्च जैसी तकनीकें हाइपरपैरामीटर स्पेस की खोज करके, विभिन्न मूल्यों के साथ मॉडल को प्रशिक्षित करके और सर्वोत्तम प्रदर्शन देने वाले इष्टतम कॉन्फ़िगरेशन का चयन करके हाइपरपैरामीटर ट्यूनिंग को स्वचालित करती हैं।
उचित हाइपरपैरामीटर ट्यूनिंग के लिए विशेषज्ञता और कम्प्यूटेशनल संसाधनों की आवश्यकता होती है, लेकिन मॉडल सटीकता को महत्वपूर्ण रूप से बढ़ाकर लाभ मिलता है। संक्षेप में, हाइपरपैरामीटर ट्यूनिंग मशीन लर्निंग मॉडल को उनकी पूरी क्षमता को अनलॉक करने के लिए फाइन-ट्यून करता है और डेटा वैज्ञानिकों द्वारा दिए गए बाधाओं के भीतर सबसे प्रभावी मॉडल बनाने के लिए इसका लाभ उठाया जाना चाहिए।
Top 10] क्लाउड कंप्यूटिंग में करियर विकल्प | Best Career Options in Cloud Computing in hindi
ग्रिड सर्चसीवी के साथ हाइपरपैरामीटर के बारे में अक्सर पूछे जाने वाले सवाल(FAQ)
Ans. हाइपरपैरामीटर ट्यूनिंग मशीन लर्निंग मॉडल के व्यवहार को नियंत्रित करने का एक अनिवार्य हिस्सा है। यदि हम अपने हाइपरपैरामीटर को सही ढंग से ट्यून नहीं करते हैं, तो हमारे अनुमानित मॉडल पैरामीटर उप-इष्टतम परिणाम उत्पन्न करते हैं, क्योंकि वे हानि फ़ंक्शन को कम नहीं करते हैं। इसका मतलब है कि हमारा मॉडल अधिक त्रुटियाँ करता है
Ans. हाइपरपैरामीटर ट्यूनिंग
जटिल एमएल मॉडल आम तौर पर सरल मॉडल की तुलना में अधिक सटीक होते हैं लेकिन पहले वाला ओवरफिटिंग के प्रति अधिक संवेदनशील होता है। इस संदर्भ में, एमएल मॉडल अधिक जटिल हो जाते हैं जब उनके पास अधिक हाइपरपैरामीटर होते हैं या उन्हें लंबे समय तक प्रशिक्षित किया जाता है।
Ans. पैरामीटर मॉडल को डेटा से नियम सीखने की अनुमति देते हैं जबकि हाइपरपैरामीटर यह नियंत्रित करते हैं कि मॉडल कैसे प्रशिक्षण ले रहा है। पैरामीटर्स डेटा से अपने स्वयं के मान सीखते हैं। इसके विपरीत, हाइपरपैरामीटर डेटा से अपना मान नहीं सीखते हैं। मॉडल को प्रशिक्षित करने से पहले हमें उन्हें मैन्युअल रूप से निर्दिष्ट करना होगा।
Ans. स्वचालित हाइपरपैरामीटर ट्यूनिंग: सर्वोत्तम हाइपरपैरामीटर के लिए निर्देशित खोज करने के लिए ग्रेडिएंट डिसेंट, बायेसियन ऑप्टिमाइज़ेशन, या विकासवादी एल्गोरिदम जैसी विधियों का उपयोग करें।
2024] आर्टिफिशियल इंटेलिजेंस चैटबॉट निर्माण | building chatbot from scratch in Hindi