हाइपरपैरामीटर वैल्यूज़

Python में Hyperparameter Tuning

Alex Scriven

Data Scientist

हाइपरपैरामीटर वैल्यूज़

 

कुछ हाइपरपैरामीटर ट्यूनिंग शुरू करने के लिए दूसरों से ज़्यादा महत्वपूर्ण होते हैं.

लेकिन हाइपरपैरामीटर के लिए किन वैल्यूज़ को आज़माएँ?

  • हर एल्गोरिदम और हाइपरपैरामीटर के अनुसार अलग-अलग
  • कुछ बेहतरीन प्रैक्टिस गाइडलाइंस और टिप्स मौजूद हैं

आइए कुछ टॉप टिप्स देखें!

Python में Hyperparameter Tuning

Conflicting Hyperparameter Choices

टकराने वाले हाइपरपैरामीटर विकल्पों से सावधान रहें.

  • LogisticRegression() में solver और penalty के कॉन्फ्लिक्टिंग विकल्प.
The 'newton-cg', 'sag' and 'lbfgs' solvers support only l2 penalties.

कुछ स्पष्ट नहीं होते, बस 'ignore' कर देते हैं (जैसे ElasticNet में normalize हाइपरपैरामीटर):

This parameter is ignored when fit_intercept is set to False

Scikit Learn की डॉक्यूमेंटेशन ज़रूर देखें!

Python में Hyperparameter Tuning

Silly Hyperparameter Values

 

विभिन्न एल्गोरिदम के लिए 'बेतुकी' वैल्यूज़ सेट करने से सावधान रहें:

  • रैंडम फॉरेस्ट में बहुत कम पेड़ों की संख्या
    • क्या केवल 2 पेड़ों को आप 'फॉरेस्ट' मानेंगे?
  • KNN एल्गोरिदम में 1 नेबर
    • एक ही व्यक्ति के 'वोट' का औसत लेना कितना भरोसेमंद है?
  • किसी हाइपरपैरामीटर को बहुत ही छोटे इंक्रीमेंट से बढ़ाना

हाइपरपैरामीटर के समझदार वैल्यूज़ को डॉक्यूमेंट करना काफ़ी उपयोगी है.

Python में Hyperparameter Tuning

हाइपरपैरामीटर चयन ऑटोमेट करें

 

पिछले अभ्यास में, हमने मॉडल ऐसे बनाए:

knn_5 =  KNeighborsClassifier(n_neighbors=5)
knn_10 = KNeighborsClassifier(n_neighbors=10)
knn_20  = KNeighborsClassifier(n_neighbors=20)

यह काफी अक्षम है. क्या हम बेहतर कर सकते हैं?

Python में Hyperparameter Tuning

हाइपरपैरामीटर ट्यूनिंग ऑटोमेट करें

विकल्पों पर इटरेट करने के लिए for लूप आज़माएँ:

neighbors_list = [3,5,10,20,50,75]

accuracy_list = []
for test_number in neighbors_list: model = KNeighborsClassifier(n_neighbors=test_number) predictions = model.fit(X_train, y_train).predict(X_test)
accuracy = accuracy_score(y_test, predictions) accuracy_list.append(accuracy)
Python में Hyperparameter Tuning

हाइपरपैरामीटर ट्यूनिंग ऑटोमेट करें

हम नतीजों को देखने के लिए DataFrame में स्टोर कर सकते हैं:

results_df = pd.DataFrame({'neighbors':neighbors_list, 'accuracy':accuracy_list})
print(results_df)

नेबर्स के हिसाब से एक्युरेसी टेबल

Python में Hyperparameter Tuning

लर्निंग कर्व्स

एक लर्निंग कर्व ग्राफ बनाएँ

इस बार हम और भी ज़्यादा वैल्यूज़ टेस्ट करेंगे

neighbors_list = list(range(5,500, 5))

accuracy_list = [] for test_number in neighbors_list: model = KNeighborsClassifier(n_neighbors=test_number) predictions = model.fit(X_train, y_train).predict(X_test) accuracy = accuracy_score(y_test, predictions) accuracy_list.append(accuracy) results_df = pd.DataFrame({'neighbors':neighbors_list, 'accuracy':accuracy_list})
Python में Hyperparameter Tuning

लर्निंग कर्व्स

हम बड़े DataFrame को प्लॉट कर सकते हैं:

plt.plot(results_df['neighbors'], 
    results_df['accuracy'])

# लेबल और शीर्षक जोड़ें plt.gca().set(xlabel='n_neighbors', ylabel='Accuracy', title='Accuracy for different n_neighbors') plt.show()
Python में Hyperparameter Tuning

लर्निंग कर्व्स

हमारा ग्राफ:

knn के लिए एक्युरेसी बनाम नेबर्स की संख्या लर्निंग कर्व

Python में Hyperparameter Tuning

वैल्यूज़ जनरेट करने की एक उपयोगी ट्रिक

Python का range फंक्शन दशमलव स्टेप्स के लिए काम नहीं करता.

एक काम की ट्रिक है NumPy का np.linspace(start, end, num)

  • यह आपके दिए इंटरवल (start, end) में बराबर दूरी पर num वैल्यूज़ बनाता है.
print(np.linspace(1,2,5))
[1.   1.25 1.5  1.75 2.  ]
Python में Hyperparameter Tuning

अभ्यास करते हैं!

Python में Hyperparameter Tuning

Preparing Video For Download...