7

मैं ग्रिड खोजें सीवी के साथ मेरी KNN आकलनकर्ता के लिए सबसे अच्छा hyperparameters का एक सेट पाया है:स्लेलेर्न के ग्रिडसेचसीवी के दूसरे मॉडल के लिए सबसे अच्छे पैरामीटर कैसे पारित करें?

>>> knn_gridsearch_model.best_params_ 
{'algorithm': 'auto', 'metric': 'manhattan', 'n_neighbors': 3} 

अब तक तो अच्छा। मैं अपने अंतिम अनुमानक पैरामीटर के साथ अपने अंतिम अनुमानक को प्रशिक्षित करना चाहता हूं। क्या उपर्युक्त हाइपरपेरामीटर शिक्षक को सीधे इसे खिलाने का कोई तरीका है? मैंने कोशिश की यह:

>>> new_knn_model = KNeighborsClassifier(knn_gridsearch_model.best_params_) 

लेकिन इसके बजाय आशा व्यक्त परिणाम new_knn_model बस मॉडल के पहले पैरामीटर के रूप में पूरे dict हो गया और डिफ़ॉल्ट के रूप में शेष लोगों को छोड़ दिया:

>>> knn_model 
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', 
      metric_params=None, n_jobs=1, 
      n_neighbors={'n_neighbors': 3, 'metric': 'manhattan', 'algorithm': 'auto'}, 
      p=2, weights='uniform') 

निराशाजनक वास्तव में।

+2

आपको 'dict'gridsearch_model.best_params_' – taras

उत्तर

11

आपको लगता है कि इस प्रकार कर सकते हैं:

new_knn_model = KNeighborsClassifier() 
new_knn_model.set_params(**knn_gridsearch_model.best_params_) 

या बस सीधे खोल के रूप में @taras सुझाव: ग्रिड खोज चल

new_knn_model = KNeighborsClassifier(**knn_gridsearch_model.best_params_) 

वैसे, खत्म करने के बाद, ग्रिड खोज वस्तु वास्तव में सर्वोत्तम पैरामीटर रखता है (डिफ़ॉल्ट रूप से), ताकि आप ऑब्जेक्ट का उपयोग कर सकें। वैकल्पिक रूप से, आप भी

gs.best_estimator_ 
+0

के साथ' dict' को अनपैक करना होगा। आपके बाद की नोक के लिए, मुझे सर्वोत्तम पैरामीटर रीसायकल करने की आवश्यकता है क्योंकि मैं अंत में संयुक्त ट्रेन + परीक्षण सेट पर एक नया मॉडल प्रशिक्षित करना चाहता हूं। – Hendrik

+0

मैं यहां अंतिम उत्तर का उपयोग कर ऐसा करता हूं, 'gs.best_estimator_', मैं सलाह दूंगा कि यहां तीनों का सबसे अच्छा तरीका है। –

0

के माध्यम से सबसे अच्छा मानकों के साथ वर्गीकारक यहां पहुंच सकता है मैं सिर्फ करते रहे कि grid.best_parameters और का उपयोग कर unpacking तरह से एक नया मॉडल के लिए उन्हें पारित करना चाहते हैं:

my_model = KNeighborsClassifier(**grid.best_params_) 

अच्छा है और सभी और मैंने व्यक्तिगत रूप से इसका बहुत उपयोग किया।
हालांकि, जैसा कि आप प्रलेखन here में देख सकते हैं, यदि आपका लक्ष्य उन सर्वोत्तम_परमीटरों का उपयोग करके कुछ भविष्यवाणी करना है, तो आप सीधे grid.predict विधि का उपयोग कर सकते हैं जो डिफ़ॉल्ट रूप से आपके लिए इन सर्वोत्तम पैरामीटर का उपयोग करेगा।

उदाहरण:

y_pred = grid.predict(X_test) 

आशा यह सहायक था।

संबंधित मुद्दे

 संबंधित मुद्दे