ทำไมการแยกข้อมูลออกเป็นชุดการฝึกอบรมและการทดสอบจึงไม่เพียงพอ


18

ฉันรู้ว่าในการเข้าถึงประสิทธิภาพของลักษณนามฉันต้องแบ่งข้อมูลออกเป็นชุดฝึกอบรม / ทดสอบ แต่อ่านนี้ :

เมื่อประเมินการตั้งค่าที่แตกต่างกัน (“ พารามิเตอร์มากเกินไป”) สำหรับตัวประมาณเช่นการตั้งค่า C ที่ต้องตั้งค่าด้วยตนเองสำหรับ SVM ยังคงมีความเสี่ยงที่จะเกิดการล้นในชุดทดสอบเนื่องจากพารามิเตอร์สามารถปรับได้จนกว่าตัวประเมินจะทำงานอย่างเหมาะสมที่สุด ด้วยวิธีนี้ความรู้เกี่ยวกับชุดทดสอบสามารถ“ รั่วไหล” ลงในแบบจำลองและตัวชี้วัดการประเมินผลไม่ได้รายงานเกี่ยวกับประสิทธิภาพของการวางนัยทั่วไปอีกต่อไป เพื่อแก้ปัญหานี้ยังมีอีกส่วนหนึ่งของชุดข้อมูลที่สามารถเรียกได้ว่า "ชุดการตรวจสอบความถูกต้อง": การฝึกอบรมเกี่ยวกับชุดการฝึกอบรมหลังจากการประเมินเสร็จสิ้นในชุดการตรวจสอบความถูกต้องและเมื่อการทดสอบประสบความสำเร็จ การประเมินขั้นสุดท้ายสามารถทำได้ในชุดทดสอบ

ฉันเห็นว่ามีการแนะนำชุดการตรวจสอบความถูกต้องอีกชุดที่สามซึ่งได้รับการพิสูจน์ด้วยการตั้งค่าการทดสอบที่มากเกินไประหว่างการปรับจูนพารามิเตอร์

ปัญหาคือฉันไม่สามารถเข้าใจได้ว่าการล้นเกินนี้จะปรากฏได้อย่างไรจึงไม่สามารถเข้าใจเหตุผลของชุดที่สามได้


2
ฉันคิดว่าความสับสนมากมายมาจาก 2 หรือ 3 ความหมายที่แตกต่างกันของคำว่า "การตรวจสอบ" การตรวจสอบความถูกต้องในการตรวจสอบข้ามเป็นส่วนใหญ่เป็นเพียงชื่อสำหรับขั้นตอนการแยกโดยไม่ต้องเปลี่ยน "การตรวจสอบความถูกต้อง" ที่ตั้งไว้ในข้อความที่อ้างถึงจะเป็นที่เข้าใจกันดีกว่าว่า "การปรับแต่ง" หรือ "ชุดการเพิ่มประสิทธิภาพ" ในขณะที่ "การตรวจสอบความถูกต้อง" เช่นในงานวิศวกรรมหรือเคมีเชิงวิเคราะห์หมายถึงการพิสูจน์ว่าวิธีการสุดท้ายที่ได้รับนั้นเหมาะสมกับจุดประสงค์ของมัน - ซึ่งทำ (จำลองจำลองโดยประมาณ) โดยชุด "การทดสอบ" (สำหรับฉันการทดสอบฟังดูน้อยกว่าการตรวจสอบความถูกต้อง ... )
cbeleites รองรับโมนิก้า

คำตอบ:


17

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

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

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


ฉันอาจจะผิด แต่ชุดทดสอบไม่เพียง แต่สำหรับการปรับค่าพารามิเตอร์หลายมิติ แต่ยังสำหรับการเปรียบเทียบเทคนิคประเภทต่าง ๆ เช่นประสิทธิภาพของ SVM เทียบกับ LDA หรือฟอเรสต์แบบสุ่มตามที่ระบุไว้ในคำตอบของฉัน

@fcoppens ใช่แน่นอน ฉันไม่ได้พูดถึงเรื่องนี้อย่างชัดเจน แต่นั่นก็สอดคล้องกับขั้นตอนนั้นด้วย
Marc Claesen

1
โดยทั่วไปแล้วการปรับหรือการเพิ่มประสิทธิภาพที่นี่เป็นกระบวนการที่ขับเคลื่อนด้วยข้อมูล (โดยการตรวจสอบความถูกต้องภายใน)
cbeleites รองรับโมนิก้า

@MarcClaesen ฉันมีคำถาม ถ้าฉันมีค่า hyperparameter 2 ค่าและฉันพอดีกับแบบจำลองทั้งสองนี้ในชุดการฝึกอบรมจากนั้นนำไปใช้กับชุดการทดสอบแล้วอัตราความผิดพลาดที่ฉันได้รับจากชุดการทดสอบควรเป็นค่าประมาณที่ผิดพลาดจริง ๆ 2 รุ่นนี้เหรอ? เพราะถ้าคุณให้ชุดข้อมูลการทดสอบอิสระอีกชุดหนึ่งชุดข้อมูลการทดสอบใหม่นี้มีความสำคัญเหมือนกับชุดการทดสอบก่อนหน้า ดังนั้นหากแบบจำลองมีคะแนนการทดสอบที่ดีขึ้นก็ควรมีประสิทธิภาพสูงกว่าแบบจำลองอื่น ๆ ในชุดข้อมูลการทดสอบใหม่ ทำไมเราต้องมีชุดการตรวจสอบ
KevinKim

"หากคุณกำลังปรับบางแง่มุมตามข้อมูลการทดสอบข้อมูลการทดสอบของคุณจะไม่ขึ้นอยู่กับคุณอีกต่อไปและคุณต้องมีชุดการตรวจสอบความถูกต้อง" นั่นลึกซึ้ง
Sudip Bhandari

11

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

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

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

โปรดทราบว่าการตรวจสอบภายในอาจเป็นส่วนหนึ่งของกระบวนการที่สร้างแบบจำลองดังนั้นในหลายกรณีจำเป็นต้องมีการตรวจสอบความถูกต้องทั้งภายในและภายนอก


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

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

αα

2

ในระหว่างการสร้างรูปแบบที่คุณฝึกอบรมรุ่นของคุณเป็นตัวอย่างการฝึกอบรม โปรดทราบว่าคุณสามารถฝึกโมเดลต่าง ๆ ได้ (เช่นเทคนิคที่แตกต่างกันเช่น SVM, LDA, ฟอเรสต์ฟอเรสต์, ... หรือเทคนิคเดียวกันกับค่าที่แตกต่างกันของพารามิเตอร์การปรับแต่งหรือส่วนผสม)

ในโมเดลที่แตกต่างกันทั้งหมดที่คุณฝึกคุณต้องเลือกหนึ่งแบบดังนั้นคุณจึงใช้ตัวอย่างการตรวจสอบเพื่อค้นหารุ่นที่มีข้อผิดพลาดน้อยที่สุดในตัวอย่างทดสอบ

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


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

@Henry: ตกลงเฮนรี่ฉันคิดว่าป้ายกำกับของเฟสมีความสำคัญน้อยกว่าลำดับ / เนื้อหาของพวกเขา แต่คำพูดของคุณสมเหตุสมผลสำหรับฉันฉันจะแก้ไขข้อความขอบคุณ (+1)

1

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

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

ดังนั้นเมื่อข้อมูลถูกแบ่งออกเป็น 2 ชุดนั่นคือชุดการฝึกอบรมและการทดสอบการแยกจะทำแบบคงที่ ดังนั้นจึงมีโอกาสของชุดฝึกอบรมมากเกินไป อย่างไรก็ตามชุดการตรวจสอบความถูกต้องไขว้ถูกสร้างขึ้นด้วยวิธีการที่แตกต่างกันเช่นการตรวจสอบความถูกต้องแบบข้ามของ k-fold, การตรวจสอบความถูกต้องแบบข้ามครั้งเดียว (LOOCV) ฯลฯ ซึ่งช่วยให้มั่นใจได้ว่า และทำให้โอกาสในการฟิตร่างกายลดลง

เหล่านี้เป็นแหล่งข้อมูลที่จะช่วยให้คุณเข้าใจดีขึ้น

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.