GridSearch के पैरामीटर सेट करना
हाइपरपैरामीटर किसी फंक्शन के अंदर का पैरामीटर होता है. उदाहरण के लिए, max_depth या min_samples_leaf, DecisionTreeClassifier() फंक्शन के हाइपरपैरामीटर हैं. हाइपरपैरामीटर ट्यूनिंग का मतलब अलग-अलग मानों को आज़माकर सर्वोत्तम मान ढूँढना है — यानी आपके उद्देश्यों के अनुसार जो सबसे अच्छे प्रेडिक्शंस दे. sklearn में, आप GridSearch का उपयोग करके हाइपरपैरामीटर के अलग-अलग कॉम्बिनेशन टेस्ट कर सकते हैं. इससे भी बेहतर, आप GridSearchCV() का उपयोग करके इन्हीं कॉम्बिनेशंस पर एक ही फंक्शन में cross-validation चला सकते हैं!
इस अभ्यास में, आप max_depth और min_samples_leaf के वे अलग-अलग मान तैयार करेंगे जिन्हें आप टेस्ट करना चाहते हैं. फिर इन्हें एक dictionary में रखेंगे, क्योंकि GridSearchCV() को यही इनपुट चाहिए:
- dictionary की keys हाइपरपैरामीटर के नाम होंगे
- dictionary की values वे एट्रिब्यूट्स (हाइपरपैरामीटर के मान) होंगे जिन्हें आप टेस्ट करना चाहते हैं
सभी मान हाथ से लिखने के बजाय, आप range() फंक्शन का उपयोग करेंगे, जो हमें क्रमिक रूप से मान जनरेट करने देता है. उदाहरण के लिए, range(1, 10, 2) 1 शामिल से 10 शामिल नहीं तक 2 की बढ़त से मानों की लिस्ट जनरेट करेगा. तो अंतिम परिणाम होगा [1, 3, 5, 7, 9].
यह अभ्यास पाठ्यक्रम का हिस्सा है
HR Analytics: Python में कर्मचारी churn की भविष्यवाणी
अभ्यास निर्देश
- ऊपर दिए उदाहरण के फ़ॉर्मेट का पालन करते हुए, अधिकतम गहराई (maximum depth) के लिए 5 से 20 तक 1-1 की बढ़त से मान जनरेट करें
- यही काम न्यूनतम सैंपल साइज़ (minimum sample size) के लिए 50 से 450 तक 50-50 की बढ़त से करें
- आपने अभी जो वैरिएबल बनाए हैं, उनका उपयोग करते हुए
max_depthऔरmin_samples_leafके मान निर्दिष्ट कर एक dictionary बनाएँ, ताकि इन्हीं मानों को ट्राई किया जा सके
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]
# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]
# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)