ทางเลือกของ K ในการตรวจสอบข้าม K-fold


136

ฉันเคยใช้การตรวจสอบความถูกต้องไขว้ของ -fold สองสามครั้งในขณะนี้เพื่อประเมินประสิทธิภาพของอัลกอริทึมการเรียนรู้บางอย่าง แต่ฉันก็ยังงงอยู่เสมอว่าฉันควรเลือกค่าอย่างไรเคKK

ฉันมักจะเห็นและใช้ค่าแต่ดูเหมือนว่าจะเป็นเรื่องที่ไม่ชอบใจสำหรับฉันและตอนนี้ฉันเพิ่งใช้โดยนิสัยแทนที่จะคิดมากกว่า สำหรับฉันดูเหมือนว่าคุณจะได้รับเมล็ดพันธุ์ที่ดีขึ้นในขณะที่คุณปรับปรุงคุณค่าของดังนั้นคุณควรทำให้ของคุณใหญ่มาก แต่ก็มีความเสี่ยงที่จะลำเอียง10 K KK=1010KK

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


คำตอบ:


69

ทางเลือกของนั้นค่อนข้างจะไม่แน่นอน นี่คือวิธีที่ฉันตัดสินใจ :kk=10k

  • ก่อนอื่นเพื่อลดความแปรปรวนของผลลัพธ์ CV คุณสามารถและควรทำซ้ำ / ซ้ำ CV ด้วยการแยกแบบสุ่มใหม่
    สิ่งนี้ทำให้อาร์กิวเมนต์ของเวลาในการคำนวณสูงขึ้น => มากกว่านั้นไม่เกี่ยวข้องอย่างมากเนื่องจากคุณต้องการคำนวณแบบจำลองต่างๆ ฉันมักจะคิดว่าส่วนใหญ่ของจำนวนโมเดลทั้งหมดที่คำนวณ (คล้ายกับการบูตสแตรป) ดังนั้นฉันอาจจะเลือก CV 100 x 10 เท่าหรือ 200 x 5 เท่าk

  • @ogrisel ได้อธิบายไปแล้วว่าโดยปกติแล้วขนาดใหญ่จะมีความลำเอียงในแง่ร้ายน้อยลง (ข้อยกเว้นบางอย่างเป็นที่รู้จักโดยเฉพาะอย่างยิ่งสำหรับ , เช่นการลาออกหนึ่งครั้ง)k = nkk=n

  • ถ้าเป็นไปได้ฉันใช้ที่เป็นตัวหารขนาดตัวอย่างหรือขนาดของกลุ่มในตัวอย่างที่ควรแบ่งเป็นชั้น ๆk

  • มีขนาดใหญ่เกินไปหมายความว่าเพียงจำนวนต่ำของการรวมกันของกลุ่มตัวอย่างเป็นไปได้จึง จำกัด จำนวนของการทำซ้ำที่มีความแตกต่างกันk

    • สำหรับการออกจากที่หนึ่ง:รูปแบบ / ตัวอย่างการทดสอบที่แตกต่างกันเป็นไปได้ การทำซ้ำไม่สมเหตุสมผลเลย(n1)=n=k
    • เช่นและ :รูปแบบการผสม / ตัวอย่างการทดสอบที่แตกต่างกันอยู่ คุณอาจพิจารณาถึงชุดค่าผสมที่เป็นไปได้ทั้งหมดที่นี่เนื่องจากมี 19 รอบของ -fold CV หรือรุ่น 190 ทั้งหมดไม่มากn=20k=10(n=202)=190=19kk
  • ความคิดเหล่านี้มีน้ำหนักมากขึ้นด้วยขนาดตัวอย่างที่เล็ก ด้วยตัวอย่างเพิ่มเติมที่มีอยู่ไม่สำคัญมาก จำนวนชุดค่าผสมที่เป็นไปได้ในไม่ช้าจะมีขนาดใหญ่พอดังนั้นการบอกว่าการวนซ้ำ 100 เท่าของ CV แบบ 10 เท่าจะไม่เสี่ยงต่อการซ้ำซ้อน ยิ่งไปกว่านั้นตัวอย่างการฝึกอบรมที่มากขึ้นหมายความว่าคุณอยู่ในช่วงโค้งของการเรียนรู้ดังนั้นความแตกต่างระหว่างตัวแบบตัวแทนและตัวแบบ "ของจริง" ที่ได้รับการฝึกฝนในตัวอย่างทั้งหมดนั้นจะเล็กน้อยkn


6
(+1) สำหรับการทำอย่างละเอียด แต่ (-1) สำหรับการนับซ้ำของ CV มันเป็นความจริงว่าความเสี่ยงในการสร้างสำเนาที่ซ้ำกัน (ดูรหัสของการสังเกต) มีขนาดเล็ก (ให้ข้อมูลเพียงพอ ฯลฯ ) แต่ความเสี่ยงในการสร้างรูปแบบ / โครงสร้างข้อมูลซ้ำสูงมาก ฉันจะไม่ทำซ้ำ CV มากกว่า 10 ครั้งไม่ว่า k คืออะไร ... เพียงเพื่อหลีกเลี่ยงการประเมินความแปรปรวนต่ำเกินไป
steffen

3
@steffen ใช่ไหมว่า ogrisel ชี้ให้เห็นแล้วว่านางแบบ (ตัวแทน) นั้นไม่ได้เป็นอิสระจริงๆเหรอ? ฉันเห็นด้วยอย่างสมบูรณ์ว่าเป็นกรณีนี้ ที่จริงแล้วฉันพยายามที่จะคำนึงถึงเรื่องนี้โดยการตีความผลลัพธ์ในแง่ของความมั่นคงของโมเดลตัวแทน (ตัวแทน) แลกเปลี่ยนตัวอย่าง "ไม่กี่" (ซึ่งฉันไม่ต้องการอธิบายรายละเอียดที่นี่ - แต่ดูตัวอย่างเช่นstats.stackexchange.com/a/26548/4598 ) และฉันไม่คำนวณข้อผิดพลาดมาตรฐาน แต่ควรรายงานเช่นค่ามัธยฐานและถึงเปอร์เซ็นต์ไทล์ของข้อผิดพลาดที่สังเกตได้มากกว่าการวนซ้ำ ฉันจะโพสต์คำถามแยกต่างหากเกี่ยวกับเรื่องนั้น 5th95th
cbeleites

2
ฉันเห็น. ฉันเห็นด้วยว่าวิธีนี้ใช้ได้ผลในการประเมินความมั่นคงของตัวแทน สิ่งที่ฉันนึกย้อนกลับไปคือการทดสอบติดตามผลทางสถิติเพื่อตัดสินใจว่าแบบจำลองหนึ่งมีประสิทธิภาพสูงกว่าแบบทดสอบอื่นหรือไม่ การทำซ้ำวิธี cv บ่อยเกินไปจะเพิ่มโอกาสของข้อผิดพลาดอัลฟาอย่างไม่คาดคิด ดังนั้นฉันจึงสับสนด้านในกับการตรวจสอบภายนอก (ตามที่ dikran วางไว้ที่นี่ )
steffen

2
@cbeleites: ฉันเห็นด้วยกับคุณ ความแปรปรวนเนื่องจากขนาดตัวอย่างที่ จำกัด มักจะเหนือความไม่แน่นอนของแบบจำลอง
jpcgandre

2
@jpcgandre: อย่างน้อยสำหรับข้อผิดพลาดการจัดหมวดหมู่เช่นความไวความจำเพาะ ฯลฯ ความไม่แน่นอนเนื่องจากจำนวนทั้งหมดของกรณีทดสอบสามารถคำนวณได้ ในขณะที่มันเป็นความจริงว่านี่เป็นเพียงส่วนหนึ่งของความแปรปรวนโดยรวมอย่างน้อยในสถานการณ์ที่ฉันพบในงานของฉันความไม่แน่นอนนี้มักจะมีขนาดใหญ่จนแม้แต่การคาดเดาคร่าวๆก็เพียงพอที่จะทำให้ชัดเจนว่าข้อสรุปมี จำกัด อย่างรุนแรง และข้อ จำกัด นี้ยังคงอยู่มันจะไม่หายไปโดยใช้ 50x 8-folds หรือ 80x 5-folds แทนการตรวจสอบแบบกากบาท 40x 10-fold
cbeleites

37

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

หากความลาดเอียงของเส้นโค้งการเรียนรู้แบนพอที่ training_size = 90% ของชุดข้อมูลทั้งหมดจะสามารถละเว้นความเอนเอียงได้และ K = 10 นั้นสมเหตุสมผล

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

แก้ไข: การประเมินค่าต่ำเกินไป => การประเมินค่าสูงเกินไปข้อผิดพลาดที่คาดหมายจริง

แก้ไข: ส่วนหนึ่งของการตอบกลับเกี่ยวกับความแปรปรวนที่สูงขึ้นสำหรับ K หรือ LOOCV ขนาดใหญ่อาจผิด (ไม่ใช่จริงเสมอไป) รายละเอียดเพิ่มเติมพร้อมแบบจำลองในคำตอบนี้: ความลำเอียงและความแปรปรวนในการตรวจสอบแบบ cross-one-out เทียบกับการตรวจสอบข้าม K-fold (ขอบคุณ Xavier Bourret Sicotte สำหรับงานนี้)


1
คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับความแปรปรวนที่สูงขึ้นด้วยขนาดใหญ่ได้ไหม จากการประมาณครั้งแรกฉันได้กล่าวว่าความแปรปรวนรวมของผลลัพธ์ CV (= ข้อผิดพลาดบางชนิดที่คำนวณจากตัวอย่างทั้งหมดที่ทดสอบโดยแบบจำลองตัวแทนใด ๆ) = ความแปรปรวนเนื่องจากการทดสอบตัวอย่างเท่านั้น + ความแปรปรวนเนื่องจากความแตกต่างระหว่างรุ่น (ความไม่แน่นอน) ฉันพลาดอะไรไป n k n kknknk
cbeleites

6
โดยความแปรปรวนฉันหมายถึงความแปรปรวนของข้อผิดพลาดในการทดสอบที่คาดว่าจะได้รับโดยการหาค่ามัธยฐานหรือค่าเฉลี่ยของข้อผิดพลาดการพับ CV โดยใช้ "การแจกแจงที่แท้จริง" ไม่ใช่ข้ามเท่าของ CV เมื่อ k มีขนาดใหญ่คุณอยู่ใกล้กับ LOO-CV มากซึ่งขึ้นอยู่กับชุดการฝึกอบรมเฉพาะที่คุณมี: ถ้าจำนวนตัวอย่างมีขนาดเล็กก็ไม่สามารถแสดงถึงการกระจายที่แท้จริงดังนั้นความแปรปรวน เมื่อ k มีขนาดใหญ่ k-fold CV สามารถจำลองตัวอย่างยากของชุดฝึกอบรม
ogrisel

8
นอกจากนี้ในฐานะที่เป็น: Kohavi ศึกษาอคติความแปรปรวนในการตรวจสอบถ่วงดุลอำนาจในบทที่ 3 ของวิทยานิพนธ์ปริญญาเอก ฉันขอแนะนำอย่างยิ่ง
steffen

3
+1 ครับ "ขนาดใหญ่ K หมายถึงความแปรปรวนสูง" ในขณะที่ฉันเข้าใจว่ามันมีขนาดใหญ่ทุกชุดการฝึกอบรมจะมีข้อมูลขนาดใหญ่ในการร่วมกันเพื่อให้ได้รับการฝึกฝนรุ่นจะมีความสัมพันธ์ค่อนข้างส่งผลให้ในมีลักษณะร่วมกันข้อผิดพลาดการทดสอบ , ดังนั้นค่าเฉลี่ยของข้อผิดพลาดการทดสอบจะมีความแปรปรวนสูงกว่าจริงไหม K KKKKK
อะโวคาโด

ใช่ฉันคิดว่านี่เป็นสัญชาตญาณที่ถูกต้อง
ogrisel

0

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

อย่างไรก็ตามสำหรับชุดฝึกอบรมขนาดใหญ่และอัลกอริทึมการเรียนรู้ที่มีการเติบโตที่ซับซ้อนเชิงเส้นกำกับสูงในจำนวนอินสแตนซ์การฝึกอบรม (อย่างน้อยเชิงเส้น) ฉันเลือกK=2เพื่อให้ไม่มีเวลาเพิ่มขึ้นสำหรับอัลกอริทึมการฝึกอบรม ของอินสแตนซ์การฝึกอบรม


-6

วิธีการแก้:

K = N/N*0.30
  • N = ขนาดของชุดข้อมูล
  • K = พับ

ความคิดเห็น: เราสามารถเลือก 20% แทน 30% ขึ้นอยู่กับขนาดที่คุณต้องการเลือกเป็นชุดทดสอบของคุณ

ตัวอย่าง:

หากขนาดชุดข้อมูล: N = 1500; K = 1500/1500 * 0.30 = 3.33; เราสามารถเลือกค่า K เป็น 3 หรือ 4

บันทึก:

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

วิธีการอาจไร้เดียงสา แต่จะดีกว่าการเลือก k = 10 สำหรับชุดข้อมูลที่มีขนาดแตกต่างกัน


4
(-1)ดังนั้นคุณจะบอกเสมอที่จะใช้ k = 3 หรือ 4 โดยไม่คำนึงถึงขนาดตัวอย่าง - นี้เป็น IMHO ไม่ได้อย่างมีนัยสำคัญที่แตกต่างจากการใช้ k = 10 อย่างเท่าเทียมกันโดยไม่คำนึงถึงขนาดของกลุ่มตัวอย่าง NN0.3=10.33.33=const.
cbeleites

K = N / N * 0.3 = 10/3 ซึ่งเป็นค่าคงที่ ดังนั้นจึงไม่มีเหตุผลที่จะใช้ค่านั้นสำหรับทุกเงื่อนไข
Kamal Thapa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.