การสร้างแบบจำลองด้วยป่าสุ่มต้องมีการตรวจสอบข้ามหรือไม่


23

เท่าที่ฉันเคยเห็นความคิดเห็นมีแนวโน้มที่จะแตกต่างกันเกี่ยวกับเรื่องนี้ แนวปฏิบัติที่ดีที่สุดจะใช้การตรวจสอบข้าม (โดยเฉพาะอย่างยิ่งหากเปรียบเทียบ RF กับอัลกอริทึมอื่นในชุดข้อมูลเดียวกัน) แหล่งที่มาดั้งเดิมระบุว่ามีการคำนวณข้อผิดพลาดจริงของ OOB ระหว่างการฝึกอบรมแบบจำลองเพียงพอที่จะเป็นตัวบ่งชี้ประสิทธิภาพของชุดการทดสอบ แม้แต่ Trevor Hastie ในการพูดคุยที่ค่อนข้างเร็วบอกว่า "ป่าสุ่มให้การตรวจสอบข้ามฟรี" โดยสัญชาตญาณสิ่งนี้สมเหตุสมผลสำหรับฉันถ้าการฝึกอบรมและพยายามปรับปรุงโมเดล RF-based บนหนึ่งชุดข้อมูล

บางคนได้โปรดสร้างข้อโต้แย้งสำหรับและต่อต้านความต้องการการตรวจสอบข้ามป่าด้วยการสุ่ม?


คำถามที่ค้นหาความคิดเห็นอย่างชัดเจนมักจะไม่ได้รับการสนับสนุนบนไซต์แลกเปลี่ยนสแต็กdatascience.stackexchange.com/help/dont-askบางทีคุณอาจใช้ถ้อยคำใหม่เพื่อตอบคำถามที่ต้องการแบบอย่างเพื่อสนับสนุนประสบการณ์ของผู้ใช้? หรือแสวงหาพื้นฐานทางทฤษฎีสำหรับตำแหน่งหนึ่งหรือตำแหน่งอื่น
image_doctor

2
ป่าสุ่มมีแนวโน้มน้อยกว่าที่จะเหมาะสมกับอัลกอริธึม ML อื่น ๆ แต่ควรตรวจสอบข้าม
David

ฉันคิดว่าคุณ sholud ถามคำถามเกี่ยวกับนักสถิติดังนั้น: stats.stackexchange.com
Marcin Kosiński

ฉันต้องการ @David ที่สอง ... ไม่ทางใดก็ทางหนึ่งคุณกำลังจะทำการตรวจสอบข้าม

คุณสามารถให้การอ้างอิงสำหรับคำสั่งที่อ้างสิทธิ์โดย Trevor Hastie ได้หรือไม่?
tipanverella

คำตอบ:


7

โดยค่าเริ่มต้นป่าสุ่มเก็บข้อมูล 2 / 3rd สำหรับการฝึกอบรมและส่วนที่เหลือสำหรับการทดสอบการถดถอยและข้อมูลเกือบ 70% สำหรับการฝึกอบรมและส่วนที่เหลือสำหรับการทดสอบในระหว่างการจัดหมวดหมู่หลักการเพราะมันสุ่มเลือกตัวแปรในแต่ละต้นไม้แยก รุ่นอื่น ๆ อย่างไรก็ตามถ้าคุณต้องการใช้ CV โดยใช้ nfolds ใน sklearn คุณยังสามารถใช้แนวคิดของชุดค้างไว้เช่น oob_score (ออกจากกระเป๋า) = จริงซึ่งแสดงให้เห็นถึงประสิทธิภาพของรุ่นที่มีหรือไม่มีการใช้ CV ดังนั้นโดยสรุปการใช้ oob_score = True ที่มีหรือไม่มี nfolds สามารถบอกได้ว่าการใช้ CV นั้นดีสำหรับข้อมูลของคุณหรือไม่โดยทั่วไปถ้าเป้าหมายของคุณติดตามการกระจายบางอย่างและคุณไม่มีข้อมูลการสังเกตมากกับคุณดังนั้นการใช้ CV จะไม่ให้ การปรับปรุงมาก


5

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

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

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

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


3

ฉันไม่ได้ทดสอบบางอย่างในชุดข้อมูลที่ 50k sklearn.RandomForestRegressorแถวใช้

ฉันได้รับคะแนนที่แตกต่างกันอย่างมาก - ฉันใช้ gini ปกติสำหรับเมตริก - ขึ้นอยู่กับว่าฉันใช้rf.oob_prediction_(0.2927) หรือ KFold CV (0.3258 สำหรับ 7 เท่าและ 0.3236 สำหรับ 3 เท่า)

ด้วยสิ่งนี้ปรากฏว่าจุดของคุณเกี่ยวกับ "โดยเฉพาะถ้าเปรียบเทียบ RF กับอัลกอริทึมอื่น ๆ บนชุดข้อมูลเดียวกัน" เป็นการพิจารณาที่ดีต่อการใช้ CV แบบแมนนวลมากกว่าการคาดการณ์ OOB

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