บทสรุปของเทคนิคการตรวจสอบข้าม


43

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

ตัวอย่างเช่นฉันเพิ่งเจอไลบรารีที่ให้ฉันเลือกหนึ่งในกลยุทธ์ต่อไปนี้:

  • ถือเอาไว้
  • เงินทุน
  • K การตรวจสอบข้าม
  • ปล่อยให้หนึ่งออก
  • การตรวจสอบข้ามแบบแบ่งชั้น
  • การตรวจสอบความถูกต้องของโครงสร้างแบบแบ่งชั้นสมดุล
  • แบ่งออกเป็นชั้น ๆ
  • แบ่งชั้น Bootstrap

และฉันกำลังพยายามที่จะเข้าใจว่าค่าเฉลี่ยของการแบ่งชั้นและสมดุลในการบูตสเตรท

นอกจากนี้เรายังสามารถเปลี่ยนโพสต์นี้เป็นวิกิชุมชนถ้าผู้คนต้องการและรวบรวมการอภิปรายของเทคนิคหรือ taxonomies ที่นี่


คำถามที่ยอดเยี่ยมนี้จะมีประโยชน์มากยิ่งขึ้นถ้าเราสามารถเชื่อมโยงไปยังคำอธิบายของวิธีการแต่ละวิธี
mkt - Reinstate Monica

คำตอบ:


16

คุณสามารถเพิ่มในรายการนั้น:

  • การตรวจสอบซ้ำข้าม
  • การตรวจสอบความถูกต้องข้ามกลุ่ม
  • ถุงนอก (สำหรับฟอเรสต์แบบสุ่มและรุ่นอื่น ๆ ที่มีถุง)
  • 632+ บูต

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

โดยทั่วไปแล้วฉันมักจะใช้ Boostrap เพราะมันมีความเข้มข้นในการคำนวณน้อยกว่า CV k-fold ซ้ำ ๆ หรือ CV แบบปล่อยครั้งเดียว Boot632 เป็นอัลกอริทึมที่ฉันเลือกเพราะไม่ต้องการการคำนวณมากกว่า bootstrap และมีการแสดงที่ดีกว่า cross-validation หรือ bootstap พื้นฐานในบางสถานการณ์

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


3
มีคำแนะนำใดบ้างเกี่ยวกับการใช้แต่ละข้อ?
whuber

16

การตรวจสอบความถูกต้องข้ามของ K-fold (CV) แบ่งข้อมูลของคุณเป็นพาร์ติชัน K แบบสุ่มและคุณจะถือหนึ่งในส่วน K เหล่านั้นไว้เป็นกรณีทดสอบและรวมส่วน K-1 อื่น ๆ เข้าด้วยกันเป็นข้อมูลการฝึกอบรมของคุณ ออกจาก One Out (LOO) เป็นกรณีพิเศษที่คุณใช้รายการข้อมูล N ของคุณและทำ N-fold CV ในบางกรณี Hold Out เป็นกรณีพิเศษอีกกรณีหนึ่งที่คุณเลือก K เท่าของคุณเป็นแบบทดสอบและไม่หมุนผ่าน K เท่าทั้งหมด

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

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

รูปแบบเหล่านี้ทั้งหมดใน K-fold CV เลือกจากข้อมูลของคุณโดยไม่ต้องเปลี่ยนใหม่ bootstrap เลือกข้อมูลที่มีการแทนที่ดังนั้น datum เดียวกันสามารถรวมได้หลายครั้งและข้อมูลบางอย่างอาจไม่รวมอยู่ด้วย (แต่ละพาร์ติชันจะมีไอเท็ม N รายการซึ่งแตกต่างจาก K-fold ซึ่งแต่ละพาร์ติชันจะมีรายการ N / K)

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

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


1
เมื่อคุณพูดว่า "การระงับไม่ได้ผล" ฉันไม่แน่ใจว่าฉันจะตาม คุณหมายถึงอะไรอย่างมีประสิทธิภาพที่นี่? ตรงข้ามกับ N-fold ปกติ Hold Out ไม่หมุนผ่านเท่าดังนั้นควรเร็วขึ้น คุณหมายถึงว่ามันแย่กว่าในการต่อสู้กับ overfitting มากกว่า N-fold CV ปกติหรือไม่?
Amelio Vazquez-Reina

2
ด้วย "ประสิทธิภาพ" ฉันหมายถึงมันไม่ได้ใช้ข้อมูลของคุณอย่างมีประสิทธิภาพ ความสวยงามของ K-fold CV คือข้อมูลของคุณ 100% ที่ใช้สำหรับการฝึกอบรมและ 100% ของข้อมูลที่ใช้ในการทดสอบซึ่งทำให้การใช้ข้อมูลของคุณมีประสิทธิภาพ ที่สำคัญคือแน่นอนว่าข้อมูลทั้งหมดของคุณไม่ได้ใช้สำหรับการทดสอบและการฝึกอบรมในเวลาเดียวกันซึ่งจะให้ผลการทดสอบในแง่ดี (overfitting) เมื่อทำการแบ่งส่วนแบบคงที่ Hold Out กล่าวว่าพูดว่า 1/3 ของข้อมูลของคุณจะไม่ถูกนำไปใช้ในการฝึกอบรมและข้อมูล 2/3 ของคุณจะไม่ถูกนำไปใช้ในการทดสอบและเสียข้อมูลจำนวนมากในข้อมูลของคุณ
เวย์น

@Wayne ตัวประเมินแบบ holdout ไม่ใช่แบบไม่ลำเอียงหรือเปล่า? นอกจากนี้ k-fold CV แบบง่ายมีแนวโน้มที่จะเกิดข้อผิดพลาดในการพิมพ์ II มากกว่า k-fold CV ซ้ำ
chl

@chl: ฉันเชื่อว่าคุณถูกต้องทั้งสองอย่าง ฉันไม่ได้ใช้ K-fold CV ซ้ำ แต่ควรมีความแปรปรวนต่ำกว่าซึ่งจะช่วยได้
เวย์น

3

ฉันพบการอ้างอิงที่เชื่อมโยงไปถึงในบทความ Wikipedia ค่อนข้างมีประโยชน์

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.48.529&rep=rep1&type=pdf

"การศึกษา cross-validation และ bootstrap สำหรับการประมาณค่าความถูกต้องและการเลือกแบบจำลอง", Ron Kohavi, IJCAI95

มันมีการเปรียบเทียบเชิงประจักษ์สำหรับชุดย่อยของเทคนิค CV รุ่น tl; dr นั้นใช้ "ใช้ CV 10 เท่า"


1

... และคำแนะนำเกี่ยวกับเวลาที่จะใช้แต่ละรายการ ...

น่าเสียดายที่ปัญหานั้นยากกว่าที่จะได้รับเครดิต มีการใช้งานหลักอย่างน้อย 2 วิธีในการตรวจสอบข้าม: การเลือกรุ่นและการประเมินประสิทธิภาพของรุ่น

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

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

ดูShao (1993), "การเลือกตัวแบบเชิงเส้นโดยการตรวจสอบความถูกต้องข้าม"สำหรับทฤษฎีแบบอะซิพโทติครุ่นเก่าในกรณีการถดถอยเชิงเส้น Yang (2007), "ความสอดคล้องของการตรวจสอบความถูกต้องแบบไขว้สำหรับการเปรียบเทียบขั้นตอนการถดถอย"และYang (2006), "การเปรียบเทียบวิธีการเรียนรู้การจำแนก"ให้ทฤษฎีแบบอะซิโมติกสำหรับปัญหาการถดถอยทั่วไปและการจำแนกประเภท แต่คำแนะนำตัวอย่าง จำกัดอย่างเข้มงวดนั้นหายาก

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