เมื่อเราทำการตรวจสอบความถูกต้องข้ามของ k-fold เราควรใช้ลักษณนามที่มีความแม่นยำในการทดสอบสูงสุดหรือไม่? โดยทั่วไปแล้ววิธีที่ดีที่สุดในการรับตัวจําแนกจากการตรวจสอบข้ามคืออะไร?
เมื่อเราทำการตรวจสอบความถูกต้องข้ามของ k-fold เราควรใช้ลักษณนามที่มีความแม่นยำในการทดสอบสูงสุดหรือไม่? โดยทั่วไปแล้ววิธีที่ดีที่สุดในการรับตัวจําแนกจากการตรวจสอบข้ามคืออะไร?
คำตอบ:
คุณทำการตรวจสอบข้ามเมื่อคุณต้องการทำสองสิ่งต่อไปนี้:
การเลือกรุ่นสามารถมาในสถานการณ์ต่าง ๆ :
(โปรดสังเกตว่าถ้าคุณทั้งคู่เลือกอัลกอริธึม - ดีกว่าที่จะเรียกว่าเป็นโมเดล - และทำการค้นหาพารามิเตอร์แบบไฮเปอร์คุณต้องทำการตรวจสอบความถูกต้องแบบซ้อนของ Nested Nested-CV จำเป็นหรือไม่? )
การตรวจสอบความถูกต้องไขว้ทำให้มั่นใจได้ในระดับหนึ่งว่าการประเมินข้อผิดพลาดนั้นใกล้เคียงที่สุดเท่าที่เป็นไปได้เนื่องจากข้อผิดพลาดการวางนัยทั่วไปสำหรับโมเดลนั้น (แม้ว่าจะยากที่จะประมาณ) เมื่อสังเกตถึงข้อผิดพลาดโดยเฉลี่ยระหว่างการพับคุณสามารถคาดการณ์ได้ดีถึงข้อผิดพลาดที่คาดไว้สำหรับโมเดลที่สร้างจากชุดข้อมูลแบบเต็ม นอกจากนี้ยังมีความสำคัญในการสังเกตความแปรปรวนของการทำนายนี่คือข้อผิดพลาดที่แตกต่างกันจากเท่าเพื่อพับ หากรูปแบบสูงเกินไป (ค่าแตกต่างกันมาก) โมเดลจะมีแนวโน้มที่จะไม่เสถียร Bootstrapping เป็นวิธีการอื่นที่ให้การประมาณที่ดีในแง่นี้ ฉันขอแนะนำให้อ่านส่วนที่ 7 ในหนังสือ "องค์ประกอบของการเรียนรู้เชิงสถิติ" อย่างอิสระมีให้ที่: ELS-Standford
ตามที่ได้รับการกล่าวถึงก่อนที่คุณจะต้องไม่ใช้โมเดลที่สร้างขึ้นในแบบไม่พับ แต่คุณต้องสร้างโมเดลใหม่ด้วยชุดข้อมูลแบบเต็ม (ชุดข้อมูลที่แบ่งออกเป็นส่วนย่อย) หากคุณมีชุดทดสอบแยกคุณสามารถใช้เพื่อลองแบบจำลองสุดท้ายนี้รับข้อผิดพลาด (และต้องสูงกว่า) ที่คล้ายกันกว่า CV ที่ได้รับ อย่างไรก็ตามคุณควรพึ่งพาข้อผิดพลาดโดยประมาณที่ได้รับจากขั้นตอน CV
หลังจากดำเนินการ CV ด้วยโมเดลที่แตกต่างกัน (การรวมอัลกอริทึม ฯลฯ ) เลือกอันที่ทำงานได้ดีขึ้นเกี่ยวกับข้อผิดพลาดและความแปรปรวนระหว่างการพับ คุณจะต้องสร้างโมเดลใหม่ด้วยชุดข้อมูลทั้งหมด นี่คือความสับสนที่พบบ่อยในแง่: เราหมายถึงการเลือกรูปแบบโดยทั่วไปคิดว่ารูปแบบนั้นเป็นแบบจำลองที่พร้อมคาดการณ์ที่สร้างขึ้นบนข้อมูล แต่ในกรณีนี้มันหมายถึงการรวมกันของอัลกอริทึม + ดังนั้นเพื่อให้ได้แบบจำลองจริงที่คุณต้องการสำหรับการทำนาย / การจำแนกคุณจำเป็นต้องสร้างมันโดยใช้ชุดค่าผสมที่ชนะในชุดข้อมูลทั้งหมด
สิ่งสุดท้ายที่ควรทราบคือหากคุณใช้การประมวลผลล่วงหน้าใด ๆ ก็ตามจะใช้ข้อมูลคลาส (การเลือกคุณสมบัติการลดขนาด LDA ฯลฯ ) สิ่งนี้จะต้องดำเนินการในทุกครึ่งและไม่ได้อยู่บนข้อมูลมาก่อน นี่คือสิ่งสำคัญ ควรทำสิ่งเดียวกันหากคุณใช้วิธีการประมวลผลล่วงหน้าที่เกี่ยวข้องกับข้อมูลโดยตรงของข้อมูล (PCA, การทำให้เป็นมาตรฐาน, มาตรฐาน ฯลฯ ) อย่างไรก็ตามคุณสามารถใช้การประมวลผลล่วงหน้าที่ไม่ได้ขึ้นอยู่กับข้อมูล (การลบตัวแปรตามความเห็นของผู้เชี่ยวชาญ แต่เป็นสิ่งที่ชัดเจน) วิดีโอนี้สามารถช่วยคุณในทิศทางนั้น: CV ถูกและผิด
ต่อไปนี้เป็นคำอธิบายที่ดีเกี่ยวกับหัวข้อ: CV และการเลือกรุ่น
ไม่คุณไม่ได้เลือกตัวแยกประเภท k ใด ๆ ที่สร้างขึ้นระหว่างการตรวจสอบความถูกต้องข้ามแบบ k-fold ก่อนอื่นจุดประสงค์ของการตรวจสอบความถูกต้องไขว้ไม่ใช่เพื่อสร้างแบบจำลองการทำนาย แต่เพื่อประเมินความแม่นยำของแบบจำลองการทำนายที่จะปฏิบัติในทางปฏิบัติ ประการที่สองเพื่อการโต้แย้งสมมติว่าคุณต้องใช้การตรวจสอบความถูกต้องข้าม k-fold ด้วย k = 10 เพื่อหาว่าอัลกอริทึมการจำแนกประเภทใดแบบใดแบบหนึ่งในสามแบบที่เหมาะสมที่สุดในการแก้ปัญหาการจำแนกประเภทที่กำหนด ในกรณีนั้นข้อมูลจะถูกสุ่มแบ่งออกเป็น k ส่วนที่มีขนาดเท่ากัน หนึ่งในส่วนที่สงวนไว้สำหรับการทดสอบและส่วนที่เหลือ k-1 จะใช้สำหรับการฝึกอบรม กระบวนการตรวจสอบความถูกต้องถูกทำซ้ำเป็น k (เท่า) เพื่อให้ทุกส่วนที่แตกต่างซ้ำสำหรับการทดสอบ หลังจากรันการตรวจสอบความถูกต้องแล้วคุณจะเห็นผลลัพธ์จากแต่ละรอยพับและสงสัยว่าอัลกอริธึมการจำแนกประเภทใด (ไม่ใช่รุ่นที่ผ่านการฝึกอบรมใด ๆ !) เหมาะสมที่สุด คุณไม่ต้องการเลือกอัลกอริทึมที่มีความแม่นยำในการทดสอบสูงสุดในหนึ่งใน 10 การทำซ้ำเพราะมันอาจเกิดขึ้นแบบสุ่มว่าข้อมูลการทดสอบในการทำซ้ำนั้นมีตัวอย่างที่ง่ายมากซึ่งจะนำไปสู่ความแม่นยำในการทดสอบสูง สิ่งที่คุณต้องการทำคือเลือกอัลกอริธึมที่ให้ความแม่นยำสูงสุด ซึ่งนำไปสู่ความแม่นยำในการทดสอบสูง สิ่งที่คุณต้องการทำคือเลือกอัลกอริธึมที่ให้ความแม่นยำสูงสุด ซึ่งนำไปสู่ความแม่นยำในการทดสอบสูง สิ่งที่คุณต้องการทำคือเลือกอัลกอริธึมที่ให้ความแม่นยำสูงสุดเฉลี่ยทั้งหมดเท่า k ตอนนี้คุณได้เลือกอัลกอริทึมแล้วคุณสามารถฝึกอบรมได้โดยใช้ข้อมูลการฝึกอบรมทั้งหมดของคุณและเริ่มทำการคาดการณ์ในป่า
นี่อยู่นอกเหนือขอบเขตของคำถามนี้ แต่คุณควรเพิ่มประสิทธิภาพพารามิเตอร์ไฮเปอร์พารามิเตอร์ของโมเดล (ถ้ามี) เพื่อให้ได้ประโยชน์สูงสุดจากอัลกอริทึมที่เลือก คนมักจะทำการเพิ่มประสิทธิภาพพารามิเตอร์ไฮเปอร์พารามิเตอร์โดยใช้การตรวจสอบข้าม
ดังนั้นให้เราสมมติว่าคุณมีการฝึกอบรมซึ่งคุณใช้ 80% เป็นการฝึกอบรมและ 20% เป็นข้อมูลการตรวจสอบ เราสามารถฝึกอบรมได้ 80% และทดสอบส่วนที่เหลืออีก 20% แต่เป็นไปได้ว่า 20% ที่เราทำนั้นไม่ได้มีความคล้ายคลึงกับข้อมูลการทดสอบจริงและอาจทำงานได้ไม่ดี ดังนั้นเพื่อป้องกันสิ่งนี้เราสามารถใช้การตรวจสอบความถูกต้องข้ามแบบ k-fold
ดังนั้นให้เราบอกว่าคุณมีรูปแบบที่แตกต่างกันและต้องการทราบว่าชุดข้อมูลใดมีประสิทธิภาพดีกว่าชุด k-fold cross validation นั้นใช้งานได้ดี คุณสามารถทราบข้อผิดพลาดในการตรวจสอบความถูกต้องในการแสดงการตรวจสอบความถูกต้องของ k และเลือกรูปแบบที่ดีขึ้นตามนั้น นี่เป็นจุดประสงค์สำหรับการตรวจสอบความถูกต้องแบบข้าม k
มาถึงรุ่นเดียวและหากคุณกำลังตรวจสอบด้วยการตรวจสอบความถูกต้องข้ามของ K-fold คุณสามารถรับข้อผิดพลาดโดยประมาณของข้อมูลทดสอบได้ แต่when you are actually training it finally, you can use the complete training data
เนื่องจากมีการสันนิษฐานว่าข้อมูลทั้งหมดจะทำงานได้ดีกว่าส่วนหนึ่งของมัน อาจเป็นบางครั้ง แต่นี่เป็นข้อสันนิษฐานทั่วไป)