मैं वर्तमान में वर्गीकरण उद्देश्यों के लिए पायथन और स्किकिट के साथ काम कर रहा हूं, और ग्रिडसर्च के आसपास कुछ पठन कर रहा हूं मैंने सोचा कि यह सबसे अच्छा परिणाम प्राप्त करने के लिए मेरे अनुमानक मापदंडों को अनुकूलित करने का एक शानदार तरीका था।
मेरी कार्यप्रणाली यह है:
- मेरे डेटा को प्रशिक्षण / परीक्षण में विभाजित करें।
- हाइपर मापदंडों के इष्टतम संयोजन के साथ सबसे अच्छा अनुमानक प्राप्त करने के लिए मेरे अनुमानकों को प्रशिक्षित करने के लिए (रैंडम फ़ॉरेस्ट, ग्रैडिएंट बूस्ट, एसवीसी) के लिए 5 गुना क्रॉस सत्यापन के साथ ग्रिडसर्च का उपयोग करें।
- फिर मैं अपने प्रत्येक अनुमानक जैसे कि सटीक, रिकॉल, एफएमआरयू और मैथ्यूज सहसंबंध गुणांक पर मैट्रिक्स की गणना करता हूं, वर्गीकरण का अनुमान लगाने के लिए अपने परीक्षण सेट का उपयोग करके और वास्तविक कक्षा लेबल से उनकी तुलना करता हूं।
यह इस स्तर पर है कि मैं अजीब व्यवहार देखता हूं और आगे बढ़ने के लिए अनिश्चित हूं। क्या मैं ग्रिड खोज से .best_estimator_ लेता हूं और ग्रिड खोज से 'इष्टतम' आउटपुट के रूप में इसका उपयोग करता हूं , और इस अनुमानक का उपयोग करके भविष्यवाणी करता हूं ? अगर मैं ऐसा करता हूं तो मुझे पता चलता है कि स्टेज 3 मेट्रिक्स आमतौर पर बहुत कम होते हैं, अगर मैं बस टेस्ट सेट पर सभी प्रशिक्षण डेटा और परीक्षण पर प्रशिक्षण देता हूं। या, क्या मैं नए अनुमानक के रूप में केवल आउटपुट GridSearchCV ऑब्जेक्ट लेता हूं ? यदि मैं ऐसा करता हूं तो मुझे अपने चरण 3 मेट्रिक्स के लिए बेहतर अंक मिलते हैं, लेकिन यह इच्छित क्लासिफायरियर (जैसे एक यादृच्छिक वन) के बजाय एक GridSearchCV ऑब्जेक्ट का उपयोग करना अजीब लगता है ...
संपादित करें: तो मेरा सवाल यह है कि लौटी हुई ग्रिडसर्चकॉवी वस्तु और .best_estimator_ विशेषता के बीच क्या अंतर है? मुझे इनमें से कौन सा एक और मैट्रिक्स की गणना के लिए उपयोग करना चाहिए? क्या मैं इस आउटपुट को एक नियमित क्लासिफायर की तरह उपयोग कर सकता हूं (जैसे कि भविष्यवाणी का उपयोग करना), वरना मुझे इसका उपयोग कैसे करना चाहिए?
refit=False
तोclf.fit
सबसे अच्छा क्लासिफायर के साथ नहीं किया जाएगा?