शुरू करेंमुफ़्त में शुरू करें

Hyperopt के साथ Bayesian हाइपरपैरामीटर ट्यूनिंग

इस उदाहरण में आप Hyperopt पैकेज (जो आपके लिए पहले से hp के रूप में इम्पोर्ट है) का उपयोग करके Bayesian हाइपरपैरामीटर ऑप्टिमाइज़ेशन प्रक्रिया सेट अप और रन करेंगे। आप domain सेट करेंगे (जो grid search के लिए grid सेट करने जैसा है), फिर objective function सेट करेंगे। अंत में, आप optimizer को 20 iterations के लिए चलाएँगे।

आपको नीचे दिए गए मानों से domain सेट करना है:

  • max_depth को quniform distribution के साथ (2 और 10 के बीच, 2-2 की वृद्धि)
  • learning_rate को uniform distribution के साथ (0.001 से 0.9)

ध्यान दें कि इस अभ्यास के लिए data sample size और hyperopt एवं GBM iterations को कम किया गया है। यदि आप इस विधि को अपनी मशीन पर स्वयं आज़मा रहे हैं, तो बड़ा search space, अधिक trials, ज़्यादा CVs और बड़ा dataset size लें ताकि आप इसे सच में प्रभावी रूप में देख सकें!

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Hyperparameter Tuning

पाठ्यक्रम देखें

अभ्यास निर्देश

  • ऊपर बताए गए domain का उपयोग करके एक space dictionary सेट करें.
  • gradient boosting classifier का उपयोग करके objective function सेट करें.
  • एल्गोरिदम को 20 evaluations के लिए चलाएँ (स्लाइड्स में दिए गए डिफ़ॉल्ट, सुझाए गए एल्गोरिदम का ही उपयोग करें).

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Set up space dictionary with specified hyperparameters
space = {'max_depth': hp.____('max_depth', ____, ____, ____),'learning_rate': hp.____('learning_rate', ____,____)}

# Set up objective function
def objective(params):
    params = {'max_depth': int(params[____]),'learning_rate': params[____]}
    gbm_clf = ____(n_estimators=100, **params) 
    best_score = cross_val_score(gbm_clf, X_train, y_train, scoring='accuracy', cv=2, n_jobs=4).mean()
    loss = 1 - ____
    return ____

# Run the algorithm
best = fmin(fn=____,space=space, max_evals=____, rstate=np.random.default_rng(42), algo=tpe.suggest)
print(____)
कोड संपादित करें और चलाएँ