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


47

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

การที่จะโต้แย้งอย่างสุดขั้วการตรวจสอบความถูกต้องของการตรวจสอบข้ามแบบครั้งเดียวนั้นนำไปสู่รูปแบบที่ดีกว่าการตรวจสอบความถูกต้องข้ามแบบ -fold หรือไม่?K

พื้นหลังบางส่วนของคำถามนี้: ฉันกำลังทำงานกับปัญหาที่มีอินสแตนซ์น้อยมาก (เช่น 10 ข้อบวกและ 10 ข้อเสีย) และกลัวว่าแบบจำลองของฉันอาจไม่ได้มาตรฐาน / มีข้อมูลน้อยมาก


1
หัวข้อที่เกี่ยวข้องเก่า: ทางเลือกของ K K-พับการตรวจสอบข้าม
อะมีบาพูดว่า Reinstate Monica

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

คำตอบ:


46

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

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

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

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


8
+1 ฉันชอบข้อความ "การเพิ่มประสิทธิภาพของคุณเป็นรากของความชั่วร้ายในสถิติ" ...
S. Kolassa - Reinstate Monica

5
ขอบคุณ @DikranMarsupial ฉันไม่ค่อยติดตาม ทำไมแบบจำลองที่เรียนรู้ด้วยการลาออกหนึ่งครั้งมีความแปรปรวนสูงกว่าการตรวจสอบความถูกต้องข้ามแบบปกติของk-fold สัญชาตญาณของฉันบอกฉันว่าเนื่องจากการข้ามจุดเราจะเปลี่ยนจุดข้อมูลเพียงจุดเดียวการฝึกซ้อมจะข้ามทับซ้อนอย่างหนักดังนั้นฉันจึงคาดว่าจะเห็นความแปรปรวนเล็กน้อยระหว่างแบบจำลอง หรือไปในอีกทางหนึ่งใน K-fold หาก K ต่ำการฝึกซ้อมสำหรับแต่ละครั้งจะค่อนข้างแตกต่างกันและโมเดลที่ได้จะมีความแตกต่างกันมาก ฉันผิดหรือเปล่า?
Amelio Vazquez-Reina

นั่นเป็นคำถามที่ดีมากในสิทธิของตนเองดังนั้นฉันขอแนะนำให้คุณถามเป็นคำถามใหม่และฉันจะคิดเกี่ยวกับวิธีการตอบ!
Dikran Marsupial

ขอบคุณ @DikranMarsupial ผมทำตามคำแนะนำของคุณและเริ่มเป็นคำถามที่แยกต่างหากที่นี่
Amelio Vazquez-Reina

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

8

การเลือกจำนวน K เท่าโดยพิจารณาจากกราฟการเรียนรู้

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

สำหรับการอภิปรายเกี่ยวกับผลกระทบของต่อความแปรปรวนดูที่นี่K

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

การสร้างภาพข้อมูลที่ใช้งานง่ายโดยใช้ตัวอย่างของเล่น

เพื่อทำความเข้าใจเรื่องนี้ด้วยสายตาพิจารณาตัวอย่างของเล่นต่อไปนี้เมื่อเราปรับพหุนามดีกรี 4 เป็นเส้นโค้งไซน์ที่มีเสียงดัง:

ป้อนคำอธิบายรูปภาพที่นี่

เราคาดหวังว่าโมเดลนี้จะมีค่าใช้จ่ายไม่ดีสำหรับชุดข้อมูลขนาดเล็กเนื่องจากใช้งานเกินจริงและมองเห็นได้ พฤติกรรมนี้สะท้อนให้เห็นในกราฟการเรียนรู้ที่เราวางแผน Mean Square Error กับขนาดการฝึกอบรมพร้อมกับส่วนเบี่ยงเบนมาตรฐาน 1 โปรดทราบว่าฉันเลือกที่จะลงจุด 1 - MSE ที่นี่เพื่อทำซ้ำภาพประกอบที่ใช้ใน ESL หน้า 243±1±

ป้อนคำอธิบายรูปภาพที่นี่

ถกเถียงเรื่องนี้

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

  1. หากชุดฝึกอบรมของเรามี 200 ข้อสังเกตการตรวจสอบข้ามพับจะประเมินผลการดำเนินงานในช่วงที่มีขนาดการฝึกอบรม 160 ซึ่งเป็นความจริงเช่นเดียวกับผลการดำเนินงานสำหรับการฝึกอบรมชุดขนาด 200 ดังนั้นการตรวจสอบข้ามจะไม่ต้องทนทุกข์ทรมานจากอคติมากและเพิ่มไป ค่าที่มากกว่าจะไม่ก่อให้เกิดประโยชน์มากนัก ( พล็อตซ้าย )เค5K

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

ป้อนคำอธิบายรูปภาพที่นี่

[อัพเดท] - ความคิดเห็นเกี่ยวกับวิธีการ

คุณสามารถค้นหารหัสสำหรับการจำลองนี้ที่นี่ วิธีการดังต่อไปนี้:

  1. สร้าง 50,000 จุดจากการกระจายที่แปรปรวนที่แท้จริงของเป็นที่รู้จักกันϵsin(x)+ϵϵ
  2. ทำซ้ำครั้ง (เช่น 100 หรือ 200 ครั้ง) ในการวนซ้ำแต่ละครั้งให้เปลี่ยนชุดข้อมูลโดยการสุ่มจุดจากการแจกแจงดั้งเดิมยังไม่มีข้อความiN
  3. สำหรับชุดข้อมูลแต่ละชุด : i
    • ดำเนินการตรวจสอบความถูกต้องข้าม K-fold สำหรับหนึ่งค่าK
    • เก็บค่าเฉลี่ย Mean Square Error (MSE) ข้าม K-fold
  4. เมื่อวนรอบเสร็จสมบูรณ์ให้คำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของ MSE ในชุดข้อมูลสำหรับค่าฉันเคiiK
  5. ทำซ้ำขั้นตอนข้างต้นสำหรับทั้งหมดในช่วงไปจนถึง LOOCV{ 5 , . . , N }K{5,...,N}

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


ขอให้เรายังคงอภิปรายนี้ในการแชท
Xavier Bourret Sicotte

@ ขอบคุณรหัส! ฉันรันโค้ดแล้ว แต่ฉันไม่เข้าใจว่าคุณรู้จักจริงได้อย่างไร(ในรหัสของคุณ) ฉันยังคิดว่าโค้ดของคุณจะมีขนาดเล็กลงถ้าคุณกำหนดสองฟังก์ชันหนึ่งสำหรับตัวอย่าง bootstrap (สุ่ม = เท็จ), หนึ่งสำหรับ KFold (สุ่ม = True) :)1 - 11MSE1112
meTchaikovsky

@ me_Tchaikovsky จำได้ว่า MSE ของนักทำนายสามารถจำแนกเป็นและสมมติว่าไม่มีอคติเมื่อโมเดลตรงกับฟังก์ชันพื้นฐานจริงจากนั้นเราจะเหลือความแปรปรวนของคำผิด0.5) ความแปรปรวนของ rv สม่ำเสมอคือดังนั้นในกรณีนี้ ε ~ U ( - 0.5 , 0.5 ) 1 / 12 ( - ) 2 1 / 12MSE=Var+Bias2ϵU(.5,.5)1/12(ba)21/12
Xavier Bourret Sicotte
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.