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

रैंडम फॉरेस्ट के हाइपरपैरामीटर ट्यून करें

हर मॉडल की तरह, हम हाइपरपैरामीटर ट्यून करके परफॉर्मेंस को बेहतर बनाना चाहते हैं। रैंडम फॉरेस्ट्स के कई हाइपरपैरामीटर होते हैं, लेकिन सबसे अहम अक्सर हर स्प्लिट पर सैंपल किए जाने वाले फीचर्स की संख्या होती है, यानी sklearn लाइब्रेरी के RandomForestRegressor में max_features। जिन मॉडलों में रैंडमनेस बिल्ट-इन होती है, जैसे रैंडम फॉरेस्ट, उनमें हम random_state भी सेट करना चाहते हैं। इससे हमारे परिणाम दोहराए जा सकते हैं।

आम तौर पर हम sklearn की GridSearchCV() मेथड से हाइपरपैरामीटर सर्च कर सकते हैं, लेकिन फाइनेंशियल टाइम सीरीज़ के साथ हम डेटा मिक्सिंग के कारण क्रॉस-वैलिडेशन नहीं करना चाहते। हम पुराने डेटा पर मॉडल फिट करना और नए डेटा पर मूल्यांकन करना चाहते हैं। इसलिए हम sklearn के ParameterGrid का उपयोग करके सर्च के लिए हाइपरपैरामीटर के कॉम्बिनेशन बनाएँगे।

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

Python में Finance के लिए Machine Learning

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

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

  • grid डिक्शनरी में n_estimators हाइपरपैरामीटर को एक मान (200) वाली लिस्ट के रूप में सेट करें।
  • grid डिक्शनरी में max_features हाइपरपैरामीटर को 4 और 8 वाली लिस्ट के रूप में सेट करें।
  • लूप में प्रत्येक हाइपरपैरामीटर कॉम्बिनेशन g के साथ रैंडम फॉरेस्ट रिग्रेसर मॉडल (rfr, आपके लिए पहले से बनाया गया) को train_features और train_targets पर फिट करें।
  • test_features पर rfr.score() का उपयोग करके R\(^2\) गणना करें और परिणाम को test_scores लिस्ट में जोड़ें।

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

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

from sklearn.model_selection import ParameterGrid

# Create a dictionary of hyperparameters to search
grid = {____, 'max_depth': [3], 'max_features': ____, 'random_state': [42]}
test_scores = []

# Loop through the parameter grid, set the hyperparameters, and save the scores
for g in ParameterGrid(grid):
    rfr.set_params(**g)  # ** is "unpacking" the dictionary
    rfr.fit(____, ____)
    test_scores.append(rfr.score(____, ____))

# Find best hyperparameters from the test score and print
best_idx = np.argmax(test_scores)
print(test_scores[best_idx], ParameterGrid(grid)[best_idx])
कोड संपादित करें और चलाएँ