ทำไมไม่ฝึกโมเดลสุดท้ายกับข้อมูลทั้งหมดหลังจากทำการทดสอบข้อมูลการปรับแต่งพื้นฐานแบบไฮเปอร์พาราเมตริกและข้อมูลการตรวจสอบพื้นฐานการเลือกโมเดล?


9

จากข้อมูลทั้งหมดฉันหมายถึงการฝึกอบรม + ทดสอบ + การตรวจสอบ

เมื่อฉันแก้ไขไฮเปอร์พารามิเตอร์ของฉันโดยใช้ข้อมูลการตรวจสอบความถูกต้องและเลือกแบบจำลองโดยใช้ข้อมูลการทดสอบจะไม่เป็นการดีกว่าที่จะมีแบบจำลองที่ผ่านการฝึกอบรมกับข้อมูลทั้งหมดเพื่อให้พารามิเตอร์ได้รับการฝึกอบรมที่ดีกว่า ข้อมูลรถไฟ


2
คุณไม่ควรแก้ไขพารามิเตอร์หลายมิติโดยใช้ข้อมูลการทดสอบของคุณ คุณเพิ่งเสียการทดลองทั้งหมดโดยการลบกลุ่มควบคุมคนตาบอด (ชุดทดสอบ)
JahKnows

@JahKnows หลังจากที่ฉันปรับพารามิเตอร์ไฮเปอร์สำหรับแบบจำลองแล้วฉันไม่เข้าใจถึงอันตรายยกเว้นว่าฉันจะไม่ทราบว่ามันใช้งานได้ดีเพียงใดในชุดข้อมูลอื่น ฉันเสียการทดลองของฉันอย่างไร ฉันพลาดอะไรไปรึเปล่า?
Apoorva Abhishekh

คำตอบ:


8

คำถามอยู่ภายใต้สมมติฐานที่ผิด หลายคนทำในสิ่งที่คุณพูดว่า "ทำไม่ได้"

ในความเป็นจริงการใช้งานการค้นหากริดในแพ็คเกจ sklearn ที่มีการใช้งานอย่างกว้างขวางนั้นทำได้ เว้นแต่refit=Falseจะสั่งสอนขึ้นใหม่รุ่นสุดท้ายโดยใช้ข้อมูลทั้งหมด

ฉันคิดว่าพารามิเตอร์บางตัวอาจไม่เป็นที่ต้องการมากนักเนื่องจากมันสัมพันธ์กับปริมาณข้อมูล ยกตัวอย่างเช่นพิจารณาmin_samples_leafชั้นเชิงก่อนการตัดแต่งกิ่งสำหรับต้นไม้ตัดสินใจ หากคุณมีข้อมูลเพิ่มเติมการตัดล่วงหน้าอาจไม่ทำงานตามที่คุณต้องการ

แต่ในความเป็นจริงคนส่วนใหญ่ทำการฝึกอบรมใหม่โดยใช้ข้อมูลทั้งหมดหลังจากการตรวจสอบความถูกต้องข้ามเพื่อให้พวกเขาได้รับแบบจำลองที่ดีที่สุด

ภาคผนวก: @NeilSlater พูดด้านล่างว่าบางคนดำเนินการระงับไว้ด้านบนของประวัติย่อ กล่าวอีกนัยหนึ่งพวกเขามีการทดสอบรถไฟแล้วทำการเลือกแบบจำลองในการฝึกอบรม ตามที่พวกเขาพวกเขาฝึกอบรมโดยใช้ชุดการฝึกอบรมเดิมแยก แต่ไม่ใช่ชุดการทดสอบ จากนั้นชุดทดสอบจะถูกใช้เพื่อทำการประเมินแบบจำลองขั้นสุดท้าย โดยส่วนตัวแล้วฉันเห็นข้อบกพร่องสามข้อในเรื่องนี้: (ก) ไม่ได้แก้ปัญหาที่ฉันกล่าวถึงด้วยพารามิเตอร์หลายมิติที่ขึ้นอยู่กับปริมาณการฝึกอบรมเนื่องจากคุณได้รับการฝึกอบรมใหม่อีกครั้ง (ข) เมื่อทำการทดสอบหลายรุ่น วิธีการต่าง ๆ เช่นการตรวจสอบความถูกต้องไขว้กันแบบซ้อนเพื่อให้ไม่มีข้อมูลไปเสียและ (c) การระงับเป็นวิธีการที่แย่มากในการอนุมานว่าแบบจำลองจะสรุปเมื่อคุณมีข้อมูลน้อยหรือไม่


คุณลักษณะนี้เกี่ยวกับการใช้การตรวจสอบข้ามซ้ำอีกครั้ง แต่ก็ยังไม่แนะนำให้ใช้ข้อมูลทดสอบอีกครั้งเนื่องจากคุณมีข้อสันนิษฐานจากการตรวจสอบข้ามและไม่มีการวัดประสิทธิภาพ พารามิเตอร์ข้อผิดพลาดหรือปัญหาใด ๆ (เช่นตัวอย่างที่คุณให้) อาจทำให้รูปแบบเลวร้ายยิ่งขึ้น
Neil Slater

@NeilSlater ฉันไม่เข้าใจสิ่งที่คุณพูดที่นี่: "คุณลักษณะนี้เกี่ยวกับการใช้การตรวจสอบความถูกต้องอีกครั้ง"
Ricardo Cruz

"feature" -> refitตัวเลือกของฟังก์ชัน GridSearchCV ไม่เหมาะที่จะรวมข้อมูลการทดสอบที่ระงับไว้ (ไม่สามารถดูข้อมูลนั้นได้)
Neil Slater

@NeilSlater คุณสามารถตรวจสอบรหัสสำหรับตัวเองถ้าคุณไม่เชื่อฉัน(ที่นี่) หาก refit = True แสดงว่า "พอดีกับตัวประมาณที่ดีที่สุดโดยใช้ชุดข้อมูลทั้งหมด"
Ricardo Cruz

1
@ NeilSlater นั่นไม่ใช่ประสบการณ์ของฉัน แต่ฉันได้เพิ่มประสบการณ์ของคุณลงในความคิดเห็นของฉันเพื่อให้ผู้อื่นได้รับประโยชน์จากมัน ขอบคุณ.
Ricardo Cruz

1

ใช่คุณสามารถ.

เนื่องจากข้อมูลทดสอบนั้นมาจากการกระจายตัวที่คล้ายคลึงกันเพื่อฝึกอบรมข้อมูลคุณจะไม่ทำลายโมเดลของคุณ หากคุณได้ฝึกฝนแบบจำลองอย่างเหมาะสมแล้วคุณจะสังเกตเห็นว่าไม่มีการเปลี่ยนแปลงที่สำคัญ (ยกเว้นตัวชี้วัดความแม่นยำที่ดีกว่าในข้อมูลการทดสอบ / การตรวจสอบก่อนหน้านี้)

แต่เป็นความจริงที่ไม่ค่อยพบข้อมูลการทดสอบนั้นมาจากการแจกแจงแบบเดียวกับข้อมูลรถไฟดังนั้นในสถานการณ์กรณีของการใช้งานจริงคุณอาจมีความเป็นไปได้ที่ดีกว่าโมเดลของคุณ


1
ปัญหาที่เกิดขึ้นกับการรวมข้อมูลการทดสอบตามคำแนะนำนี้คือตอนนี้คุณไม่มีการวัดว่าโมเดลทั่วไปดีแค่ไหน ใช่คุณอาจคาดหวังว่ามันจะทำให้ดีขึ้น อย่างไรก็ตามคุณไม่รู้เพราะคุณได้ลบความสามารถในการวัดออกแล้ว ฉันขอแนะนำให้เพิ่มข้อแม้นั้นและอธิบายว่าทำไมบางครั้งมันก็ยังโอเค (เช่นเมื่อรับข้อมูลใหม่คุณอาจสามารถปฏิบัติเช่นนั้นในฐานะชุดทดสอบใหม่และสร้างการวัดใหม่เมื่อเวลาผ่านไปโดยหวังว่าจะใช้ประโยชน์จากแบบจำลองที่ดีกว่า - มันเป็นความเสี่ยง)
Neil Slater

@ NeilSlater: ฉันเข้าใจว่าฉันได้ลบความสามารถในการวัดความดีของชุดข้อมูลที่แตกต่างออกไป แต่ถ้าฉันมีทั้งการทดสอบและการหยุดพักแม้หลังจากการปรับพารามิเตอร์แบบไฮเปอร์ฉันสามารถฝึกแบบจำลองของฉันอีกครั้งในการฝึกอบรม + การทดสอบฉันจะยังคงมีการค้างอยู่เพื่อตรวจสอบว่าแบบจำลองของฉันเป็นแบบทั่วไป ฉันรู้ว่านี่แตกต่างจากที่ฉันถาม แต่ฉันแค่อยากรู้มุมมองของคุณ
Apoorva Abhishekh

1
@ApoorvaAbhishekh: หากคุณยังมีชุดข้อมูลอีกชุดหนึ่งอยู่ใช่คุณสามารถใช้ชุดทดสอบใหม่กับโมเดลใหม่ที่ได้รับการฝึกฝนบน new_train = {รถไฟเก่า cv เก่าทดสอบเก่า} จากนั้นคุณจะได้รับการวัดความทั่วไป แม้ว่าคุณจะต้องระมัดระวังไม่ให้ใช้งานมากเกินไป - หากปรากฎว่ามีปัญหากับชุดรวมใหม่ (เช่นการหยุดก่อนกำหนดต้องเปลี่ยนเนื่องจากมีข้อมูลเพิ่มเติม) จากนั้นคุณไม่สามารถใช้มันเป็นชุด cv ใหม่ได้ . . นอกเสียจากคุณจะมีอีกชุดที่เก็บไว้สำรองไว้ . .
Neil Slater

@NeilSlater ในทางทฤษฎีคุณต้องมีชุดข้อมูลใหม่เพื่อทราบประสิทธิภาพ ในทางปฏิบัติคุณอาจมั่นใจได้ว่าแบบจำลองของคุณทำงานได้ดีในขณะที่คุณทำงานกับมันมาเป็นเวลานานและคุณรู้ว่าจะต้องทำอะไร แต่โดยปกติคุณจะมีข้อมูลอื่น ๆ เพื่อตรวจสอบประสิทธิภาพของแบบจำลองตัวอย่างเช่นในคอมพิวเตอร์ที่มีวิสัยทัศน์ซึ่งเป็นข้อมูลที่ไม่มีป้ายกำกับ มันไม่ถูกต้อง แต่ก็ใช้ได้เช่นกัน แน่นอนว่ามันเป็นกรณีที่สุดขีด แต่ฉันอยากจะบอกว่ามันอาจใช้งานได้ ฉันเองมีชุดทดสอบอยู่เสมอซึ่งฉันไม่ได้ผสมในการฝึกอบรม
Il'ya Zhenin

1

คำตอบสำหรับคำถามนี้ขึ้นอยู่กับอัลกอริทึมการฝึกอบรม (เทคโนโลยี) ที่คุณใช้ ตัวอย่างเช่นฉันได้เห็นวิธีการบางอย่างในการจำแนกวงดนตรีโดยที่การฝึกอบรมและการตรวจสอบความถูกต้อง (แต่ไม่ใช่การทดสอบ) จะรวมกันในตอนท้าย มันสำคัญมากที่จะรู้ว่าแม้การตรวจสอบจะใช้เป็นหลักในการตัดสินใจว่าพารามิเตอร์ไฮเปอร์บางพารามิเตอร์ไฮเปอร์เหล่านี้สามารถทำงานของข้อมูลที่ใช้สำหรับการฝึกอบรม ตัวอย่างเช่นในการตรวจสอบความถูกต้องของ DNN เคยรู้ว่าเมื่อใดที่จะหยุดเพราะการใส่ข้อมูลมากเกินไปอาจเกิดขึ้นเนื่องจากการปรับพารามิเตอร์ (น้ำหนัก) ของเครือข่ายเราต้องการวิธีที่จะหยุดเมื่อใด หากไม่มีชุดการตรวจสอบคุณจะเดินสุ่มสี่สุ่มห้าในกระบวนการฝึกอบรม ในทางกลับกันถ้าคุณใช้การวนซ้ำตามจำนวนที่ระบุไว้ก่อนหน้านี้มีโพรบสูงที่คุณจะไม่ได้รับจากตัวอย่างเพิ่มเติมเหล่านี้ ไม่ควรแตะต้องชุดทดสอบเลยตามที่ระบุข้างต้นโดยไม่มีชุดทดสอบคุณจะไม่มีวิธีในการประเมินโมเดลของคุณ นี่คือการพนันคุณไม่สามารถส่งมอบรูปแบบหรือวิธีการแก้ปัญหาใด ๆ โดยไม่ต้องประเมินความถูกต้องของมันในการกระจายข้อมูลที่แท้จริง (ซึ่งแสดงโดยข้อมูลการทดสอบ)


ฉันหมายถึงหลังจากการฝึกอบรมเกี่ยวกับข้อมูลรถไฟ, การปรับพารามิเตอร์ไฮเปอร์ในข้อมูลการตรวจสอบความถูกต้องและการเลือกรูปแบบพื้นฐานของข้อมูลการทดสอบฉันสามารถฝึกรูปแบบพื้นฐานของข้อมูลทั้งหมด หรือฉันสามารถรวมข้อมูลการฝึกอบรมและข้อมูลการตรวจสอบความถูกต้องหลังจากเสร็จสิ้นการปรับแต่งพารามิเตอร์และประเมินความถูกต้องโดยใช้ข้อมูลการทดสอบ ขออภัยที่เขียนไม่ถูกต้อง ได้ทำการแก้ไขแล้ว
Apoorva Abhishekh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.