การตรวจสอบความถูกต้องไขว้: K-fold เทียบกับการสุ่มตัวอย่างย่อยซ้ำซ้ำ ๆ


10

ฉันสงสัยว่ารูปแบบการตรวจสอบความถูกต้องไขว้แบบใดเพื่อเลือกสำหรับปัญหาการจำแนกประเภท: K-fold หรือการสุ่มย่อยแบบสุ่ม (การสุ่มตัวอย่างบูตสแตรป)?

การคาดเดาที่ดีที่สุดของฉันคือใช้ 2/3 ของชุดข้อมูล (ซึ่งคือ ~ 1,000 รายการ) สำหรับการฝึกอบรมและ 1/3 สำหรับการตรวจสอบ

ในกรณีนี้ K-fold ให้การทำซ้ำเพียงสามครั้ง (เท่า) ซึ่งไม่เพียงพอที่จะเห็นข้อผิดพลาดเฉลี่ยที่เสถียร

ในทางตรงกันข้ามฉันไม่ชอบคุณสมบัติการสุ่มตัวอย่างย่อย: บางรายการจะไม่ถูกเลือกสำหรับการฝึกอบรม / การตรวจสอบความถูกต้องและบางรายการจะถูกใช้มากกว่าหนึ่งครั้ง

อัลกอริทึมการจำแนกประเภทที่ใช้: ฟอเรสต์แบบสุ่มและการถดถอยโลจิสติก


1
ฉันเดาคำถามก่อนหน้านี้: การเลือกนี้ไม่ได้ขึ้นอยู่กับอัลกอริทึม
รูเบนส์

1
@ Rubens ฉันได้รับการปรับปรุงคำถาม: ฉัน intersted ใน RF และการถดถอยโลจิสติก
IharS

คำตอบ:


7

หากคุณมีตัวอย่างจำนวนเพียงพอและต้องการใช้ข้อมูลทั้งหมดการตรวจสอบความถูกต้องไขว้ของ k-fold เป็นวิธีที่จะดำเนินการ การมี ~ 1,500 ดูเหมือนจะมาก แต่ไม่ว่าจะเพียงพอสำหรับการตรวจสอบความถูกต้องข้ามของ k-fold หรือไม่นั้นยังขึ้นอยู่กับมิติข้อมูล (จำนวนแอตทริบิวต์และจำนวนค่าแอตทริบิวต์) ตัวอย่างเช่นหากการสังเกตแต่ละรายการมี 100 คุณลักษณะดังนั้นการสังเกต 1,500 ครั้งจะต่ำ

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

การสุ่มย่อยตัวอย่างแบบสุ่ม (เช่นการสุ่มตัวอย่าง bootstrap) จะดีกว่าเมื่อคุณไม่ได้ตัวอย่างหรือเมื่อคุณมีสถานการณ์ข้างต้นซึ่งคุณไม่ต้องการให้แต่ละการสังเกตปรากฏเป็น k-1 เท่า


4

ฉันเดาว่าคุณบอกว่าคุณต้องการใช้การตรวจสอบความถูกต้องไขว้ 3 เท่าเพราะคุณรู้อะไรบางอย่างเกี่ยวกับข้อมูลของคุณ (การใช้ k = 10 จะทำให้เกิดการ overfitting ใช่ไหมฉันอยากรู้เหตุผลของคุณ) ฉันไม่แน่ใจว่าคุณรู้เรื่องนี้หรือไม่ถ้าไม่ใช่คุณสามารถใช้ k ที่ใหญ่กว่าได้

หากคุณยังคิดว่าคุณไม่สามารถใช้การตรวจสอบความถูกต้องข้ามมาตรฐานของ K-fold คุณสามารถปรับเปลี่ยนอัลกอริทึมได้เล็กน้อย: บอกว่าคุณแบ่งข้อมูลออกเป็น 30 เท่าและแต่ละครั้งใช้ 20 สำหรับการฝึกอบรมและ 10 สำหรับการประเมินผล หนึ่งเท่าและใช้ตัวแรกและตัวสุดท้ายเป็นตัวช่วยประเมินและส่วนที่เหลือเป็นการฝึกอบรม) ซึ่งหมายความว่าคุณสามารถใช้ข้อมูลทั้งหมดของคุณได้

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

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