Scikit Learn में RandomizedSearchCV
आइए Scikit Learn का उपयोग करके एक RandomizedSearchCV ऑब्जेक्ट बनाना प्रैक्टिस करें.
हाइपरपैरामीटर ग्रिड max_depth (5 से 25 तक के सभी मान, दोनों सहित) और max_features ('auto' और 'sqrt') के लिए होना चाहिए.
RandomizedSearchCV ऑब्जेक्ट के लिए वांछित ऑप्शंस:
n_estimators= 80 वाला RandomForestClassifier एस्टीमेेटर.- 3-fold क्रॉस-वैलिडेशन (
cv) - मॉडलों को स्कोर करने के लिए
roc_aucका उपयोग करें - पैरेलल प्रोसेसिंग के लिए 4 कोर का उपयोग करें (
n_jobs) - बेस्ट मॉडल को दोबारा फिट करें और ट्रेनिंग स्कोर रिटर्न हों, यह सुनिश्चित करें
- दक्षता के लिए केवल 5 मॉडलों का सैंपल लें (
n_iter)
X_train और y_train डेटासेट आपके लिए लोड हैं.
याद रखें, चुने गए हाइपरपैरामीटर्स निकालने के लिए वे cv_results_ में मिलते हैं, जहाँ हर हाइपरपैरामीटर के लिए एक अलग कॉलम होता है. उदाहरण के लिए, हाइपरपैरामीटर criterion का कॉलम param_criterion होगा.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Hyperparameter Tuning
अभ्यास निर्देश
- ऊपर दिए गए संदर्भ के अनुसार एक हाइपरपैरामीटर ग्रिड बनाएँ.
- संदर्भ के अनुसार एक
RandomizedSearchCVऑब्जेक्ट बनाएँ. RandomizedSearchCVऑब्जेक्ट को प्रशिक्षण डेटा पर फिट करें.cv_results_ऑब्जेक्ट को इंडेक्स करके दोनों हाइपरपैरामीटर्स (max_depthऔरmax_features) के लिए मॉडलिंग प्रक्रिया द्वारा चुनी गई वैल्यूज़ प्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]}
# Create a random search object
random_rf_class = RandomizedSearchCV(
estimator = ____(n_estimators=____),
param_distributions = ____, n_iter = ____,
scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )
# Fit to the training data
____.fit(X_train, y_train)
# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])