ขณะนี้ฉันกำลังทำงานกับ Python และ Scikit เรียนรู้เพื่อวัตถุประสงค์ในการจัดหมวดหมู่และทำการอ่านเกี่ยวกับ GridSearch ฉันคิดว่านี่เป็นวิธีที่ดีในการปรับพารามิเตอร์ตัวประมาณของฉันให้เหมาะสมเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด
วิธีการของฉันคือ:
- แบ่งข้อมูลของฉันออกเป็นการฝึกอบรม / ทดสอบ
- ใช้ GridSearch พร้อมการตรวจสอบ 5Fold Cross เพื่อฝึกอบรมและทดสอบเครื่องมือประมาณค่าของฉัน (Random Forest, Gradient Boost, SVC และอื่น ๆ ) เพื่อรับเครื่องมือประมาณค่าที่ดีที่สุดด้วยการรวมกันของพารามิเตอร์ไฮเปอร์
- จากนั้นฉันคำนวณตัวชี้วัดของตัวประมาณค่าของฉันเช่น Precision, Recall, FMeasure และ Matthews Correlation Coefficient โดยใช้ชุดทดสอบของฉันเพื่อทำนายการจำแนกประเภทและเปรียบเทียบกับฉลากระดับจริง
มันอยู่ในขั้นตอนนี้ที่ฉันเห็นพฤติกรรมแปลก ๆ และฉันไม่แน่ใจว่าจะดำเนินการต่อไปอย่างไร ฉันจะใช้. best_estimator_ จาก GridSearch และใช้สิ่งนี้เป็นผลลัพธ์ 'ดีที่สุด' จากการค้นหากริดและทำการคาดการณ์โดยใช้เครื่องมือประมาณนี้ ถ้าฉันทำสิ่งนี้ฉันพบว่าตัวชี้วัดระยะที่ 3 มักจะต่ำกว่าถ้าฉันฝึกอบรมข้อมูลการฝึกอบรมทั้งหมดและทดสอบในชุดการทดสอบ หรือฉันจะใช้วัตถุ GridSearchCV ผลลัพธ์เป็นตัวประมาณใหม่หรือไม่ ถ้าฉันทำสิ่งนี้ฉันจะได้คะแนนที่ดีขึ้นสำหรับตัวชี้วัดระยะที่ 3 ของฉัน แต่ดูเหมือนว่าแปลกเมื่อใช้วัตถุ GridSearchCV แทนที่จะเป็นตัวจําแนกตามที่ต้องการ (เช่นฟอเรสต์แบบสุ่ม) ...
แก้ไข: ดังนั้นคำถามของฉันคือความแตกต่างระหว่างวัตถุ GridSearchCV กลับมาและแอตทริบิวต์. best_estimator_ คืออะไร ฉันควรใช้วิธีใดในการคำนวณเมตริกเพิ่มเติม ฉันสามารถใช้เอาต์พุตนี้เหมือนลักษณนามปกติ (เช่นใช้ทำนาย) หรือฉันจะใช้มันได้อย่างไร?
refit=False
แล้วclf.fit
จะไม่ทำกับลักษณนามที่ดีที่สุด?