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


9

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

คำตอบ:


10

หากคุณเรียนรู้พารามิเตอร์ไฮเปอร์ในข้อมูลการฝึกอบรมเต็มรูปแบบและจากนั้นตรวจสอบข้ามคุณจะได้รับการประเมินประสิทธิภาพลำเอียงในแง่ดีเพราะข้อมูลการทดสอบในแต่ละครั้งจะถูกนำมาใช้ในการตั้งค่าพารามิเตอร์ไฮเปอร์ดังนั้น ส่วนพารามิเตอร์ที่เลือกจะถูกเลือกเนื่องจากเหมาะสมกับข้อมูลในชุดทดสอบ ความเอนเอียงในแง่ดีที่แนะนำด้วยวิธีนี้อาจมีขนาดใหญ่อย่างไม่คาดคิด ดูCawley และ Talbot "ในการเลือกรุ่นและการเลือกที่มีความลำเอียงในการประเมินผลการปฏิบัติงาน", JMLR 11 (ก.ค. ): 2079 :2107, 2010(เฉพาะส่วนที่ 5.3) สิ่งที่ดีที่สุดที่จะทำคือการตรวจสอบข้ามซ้อน แนวคิดพื้นฐานคือคุณตรวจสอบความถูกต้องของวิธีการทั้งหมดที่ใช้ในการสร้างแบบจำลองดังนั้นเลือกใช้แบบจำลอง (เลือกพารามิเตอร์มากเกินไป) เป็นเพียงส่วนหนึ่งของขั้นตอนการปรับแบบจำลอง (ซึ่งเป็นพารามิเตอร์ที่กำหนด) และคุณไม่สามารถไปได้ ผิดมากเกินไป

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


การอ้างอิงที่ดี!
Andrew

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

จะมีความชัดเจนมากขึ้นใน ii) เรียกใช้การเลือกคุณสมบัติในการตรวจสอบไขว้อีกรอบเพื่อรับชุดของตัวทำนายอันดับต้น (ข้อมูลการฝึกอบรมถูกแบ่งออกเป็นการทดสอบย่อยและการตรวจสอบความถูกต้องตั้งค่าผ่านวิธี resampling ข้อมูลการค้าย่อย)
sma

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

0

ฉันไม่คิดว่าการตรวจสอบข้ามถูกใช้ในกรณีของ LIBSVM เพราะทำในระดับข้อมูลการทดสอบ สิ่งที่ทำได้ก็คือการตรวจสอบความถูกต้องด้วย K-fold และค้นหาพารามิเตอร์ที่ดีที่สุดสำหรับเคอร์เนล RBF ให้ฉันรู้ว่าคุณไม่เห็นด้วย


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