ทำไมต้องมีสามพาร์ติชั่นเท่านั้น? (การฝึกอบรมการตรวจสอบการทดสอบ)


61

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

นี่เป็นเพราะโมเดลมักจะมี "ระดับ" ของพารามิเตอร์สามตัว: "พารามิเตอร์" ตัวแรกคือคลาสโมเดล (เช่น SVM, โครงข่ายประสาทเทียม, ฟอเรสต์แบบสุ่ม) ชุดพารามิเตอร์ที่สองคือพารามิเตอร์ "การทำให้เป็นมาตรฐาน" หรือ " เช่นค่าสัมประสิทธิ์การลงโทษบ่วงบาศเลือกเคอร์เนลโครงข่ายโครงข่ายประสาทเทียม) และเซตที่สามคือสิ่งที่มักจะพิจารณาว่า "พารามิเตอร์" (เช่นค่าสัมประสิทธิ์สำหรับ covariates)

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

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

นี่เป็นวิธีปฏิบัติทั่วไปในบางแอปพลิเคชันหรือไม่ มีทฤษฎีใดบ้างเกี่ยวกับการแบ่งพาร์ติชั่นข้อมูลที่ดีที่สุด?

คำตอบ:


79

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

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

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


2
ปัญหาเชิงแนวคิดที่ฉันมีคือถ้าคุณเปรียบเทียบโมเดลที่มากพอคุณจะปรับข้อมูลการตรวจสอบให้ถูกต้องได้อย่างมีประสิทธิภาพเมื่อคุณ "ตัดสินใจเลือกผู้ชนะ" โดยใช้ข้อมูลการตรวจสอบความถูกต้อง ดังนั้นยังอาจเป็นจุดในการแบ่งข้อมูลการตรวจสอบ
charles.y.zheng

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

2
@ user10882 ความคิดเห็นของคุณไม่ถูกต้องไม่เป็น Firebugs ทั้ง (1) พารามิเตอร์แบบ (น้ำหนักเกณฑ์) และ (2) เรียกว่า "ไฮเปอร์" พารามิเตอร์ (จำนวนชั้นที่ซ่อนอยู่จำนวนต้นไม้ตัดสินใจ) อาจจะมีการตีความที่แตกต่างกันอย่างมากมายและความรู้สึก แต่จะมีทั้งหมดเพียงพารามิเตอร์ความแตกต่างระหว่างที่แตกต่างกัน รุ่น ใช้ข้อมูลการฝึกอบรมเพื่อปรับให้เหมาะสมทั้งหมดใช้ข้อมูลการตรวจสอบเพื่อหลีกเลี่ยงการปรับให้แน่นเกินไปและใช้การตรวจสอบความถูกต้องข้ามเพื่อให้แน่ใจว่าผลลัพธ์ของคุณมั่นคง ข้อมูลการทดสอบใช้เพื่อระบุประสิทธิภาพที่คาดหวังของโมเดลของคุณเท่านั้นอย่าใช้เพื่อยอมรับ / ปฏิเสธ
Ytsen de Boer

1
n

1
@YtsendeBoer: ยุติธรรมเพียงพอ - หากคุณใช้ sth เช่นการตรวจสอบตามขั้นตอนการหยุดก่อนกำหนดฉันยอมรับว่าขอบเขตไม่ชัดเจนอย่างน้อยก็ในแง่ของขั้นตอนการเพิ่มประสิทธิภาพ ในความคิดของฉันมันไม่ได้รวมแนวคิดของ "พารามิเตอร์หลายมิติ" เข้ากับแนวคิดปกติ ยังมีอีกหลายสถานการณ์ที่พวกเขาได้รับการปฏิบัติต่างกันและฉันก็คิดถึงพวกเขาในแง่ของบทบาทของพวกเขาในการกำหนดรูปแบบที่แตกต่างกัน อย่างไรก็ตามฉันหวังว่าการสนทนานี้จะเป็นประโยชน์ต่อผู้อื่นเพื่อแสดงให้เห็นถึงความแตกต่าง (บอบบาง) & ความคล้ายคลึงกันระหว่างแนวคิดเหล่านี้ =)
Ruben van Bergen

0

นี่เป็นคำถามที่น่าสนใจและฉันพบว่ามีประโยชน์กับคำตอบจาก @Wayne

จากความเข้าใจของฉันการแบ่งชุดข้อมูลออกเป็นพาร์ติชั่นต่าง ๆ นั้นขึ้นอยู่กับวัตถุประสงค์ของผู้แต่งและความต้องการของตัวแบบในการใช้งานจริง

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

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

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

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