วิธีการเลือกลักษณนามหลังจากการตรวจสอบข้าม?


13

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


ฉันคิดว่าคำถามนี้ขึ้นอยู่กับตัวชี้วัดที่ใช้เพื่อกำหนด "แนวทางที่ดีที่สุด" คนจำนวนมากใช้ปริมาณความแม่นยำ แต่ขึ้นอยู่กับชุดข้อมูลตัวชี้วัดอื่น ๆ สามารถใช้เช่นค่าเฉลี่ยฮาร์มอนิกเช่นคะแนน F1 ดังนั้นตัวเลือกการวัดจึงมีความสำคัญเท่าเทียมกัน
Nathan McCoy

@NathanMcCoy เป็นอย่างดีสมมติว่าเราเลือกความถูกต้องเราจะเลือกลักษณนามที่มีความแม่นยำในการทดสอบมากที่สุด?
Armon Safai

แน่นอน! เพียงแค่พยายามที่จะพูดถึงบางสิ่งบางอย่างอื่นที่จะคิดเกี่ยวกับ :)
นาธานแท้

คำตอบ:


15

คุณทำการตรวจสอบข้ามเมื่อคุณต้องการทำสองสิ่งต่อไปนี้:

  • การเลือกรูปแบบ
  • การประมาณข้อผิดพลาดของแบบจำลอง

การเลือกรุ่นสามารถมาในสถานการณ์ต่าง ๆ :

  • การเลือกหนึ่งอัลกอริทึมเทียบกับอื่น ๆ สำหรับปัญหา / ชุดข้อมูลเฉพาะ
  • การเลือกพารามิเตอร์ไฮเปอร์ของอัลกอริทึมเฉพาะสำหรับปัญหา / ชุดข้อมูลเฉพาะ

(โปรดสังเกตว่าถ้าคุณทั้งคู่เลือกอัลกอริธึม - ดีกว่าที่จะเรียกว่าเป็นโมเดล - และทำการค้นหาพารามิเตอร์แบบไฮเปอร์คุณต้องทำการตรวจสอบความถูกต้องแบบซ้อนของ Nested Nested-CV จำเป็นหรือไม่? )

การตรวจสอบความถูกต้องไขว้ทำให้มั่นใจได้ในระดับหนึ่งว่าการประเมินข้อผิดพลาดนั้นใกล้เคียงที่สุดเท่าที่เป็นไปได้เนื่องจากข้อผิดพลาดการวางนัยทั่วไปสำหรับโมเดลนั้น (แม้ว่าจะยากที่จะประมาณ) เมื่อสังเกตถึงข้อผิดพลาดโดยเฉลี่ยระหว่างการพับคุณสามารถคาดการณ์ได้ดีถึงข้อผิดพลาดที่คาดไว้สำหรับโมเดลที่สร้างจากชุดข้อมูลแบบเต็ม นอกจากนี้ยังมีความสำคัญในการสังเกตความแปรปรวนของการทำนายนี่คือข้อผิดพลาดที่แตกต่างกันจากเท่าเพื่อพับ หากรูปแบบสูงเกินไป (ค่าแตกต่างกันมาก) โมเดลจะมีแนวโน้มที่จะไม่เสถียร Bootstrapping เป็นวิธีการอื่นที่ให้การประมาณที่ดีในแง่นี้ ฉันขอแนะนำให้อ่านส่วนที่ 7 ในหนังสือ "องค์ประกอบของการเรียนรู้เชิงสถิติ" อย่างอิสระมีให้ที่: ELS-Standford

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

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

สิ่งสุดท้ายที่ควรทราบคือหากคุณใช้การประมวลผลล่วงหน้าใด ๆ ก็ตามจะใช้ข้อมูลคลาส (การเลือกคุณสมบัติการลดขนาด LDA ฯลฯ ) สิ่งนี้จะต้องดำเนินการในทุกครึ่งและไม่ได้อยู่บนข้อมูลมาก่อน นี่คือสิ่งสำคัญ ควรทำสิ่งเดียวกันหากคุณใช้วิธีการประมวลผลล่วงหน้าที่เกี่ยวข้องกับข้อมูลโดยตรงของข้อมูล (PCA, การทำให้เป็นมาตรฐาน, มาตรฐาน ฯลฯ ) อย่างไรก็ตามคุณสามารถใช้การประมวลผลล่วงหน้าที่ไม่ได้ขึ้นอยู่กับข้อมูล (การลบตัวแปรตามความเห็นของผู้เชี่ยวชาญ แต่เป็นสิ่งที่ชัดเจน) วิดีโอนี้สามารถช่วยคุณในทิศทางนั้น: CV ถูกและผิด

ต่อไปนี้เป็นคำอธิบายที่ดีเกี่ยวกับหัวข้อ: CV และการเลือกรุ่น


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

+1 สำหรับ "เลือกรายการที่ทำงานได้ดีขึ้นเกี่ยวกับข้อผิดพลาดและความแปรปรวนระหว่างครึ่ง " ทุกคนดูเหมือนจะไม่สนใจความแปรปรวนระหว่างการพับเมื่อเลือกรุ่น
stmax

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

คำถามอื่น เกิดอะไรขึ้นถ้าโมเดลที่ดีที่สุดจาก CV ไม่ใช่โมเดลที่ดีที่สุดเมื่อสร้างสำหรับชุดข้อมูลทั้งหมด?
HelloWorld

1
คุณสร้างแบบจำลองบน 100% ของข้อมูลซึ่งหมายถึง 100% ของข้อมูลที่ใช้สำหรับการตรวจสอบความถูกต้องข้าม หากก่อนหน้านี้คุณแบ่งข้อมูลดั้งเดิมเป็น 80% -20% สำหรับการฝึกอบรมและการทดสอบเพิ่มเติมคุณจะทำ CV ใน 80% เลือกรุ่นและฝึกใหม่ทั้ง 80% การตั้งค่าการทดสอบในกรณีนี้ (20%) จะช่วยให้คุณเห็นว่าการทำงานกับข้อมูลที่มองไม่เห็นใหม่ (คุณสามารถคิดว่ามันเป็นข้อมูลที่พร้อมใช้งานในอนาคต) แต่การประเมินข้อผิดพลาดที่คุณใช้นั้นมาจาก CV . หวังว่ามันจะสร้างข้อผิดพลาดที่คล้ายกันกับข้อมูลใหม่ถ้าเป็นโมเดลที่ดี (นั่นคือ 20% หรือข้อมูลใหม่จริง ๆ ) @ArmonSafai
Javierfdr

8

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

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


ฉันคิดว่าการตรวจสอบไขว้ของ k-fold สร้างแบบจำลองที่แตกต่างกัน k เนื่องจากมี 10 ชุดข้อมูลการฝึกอบรมที่แตกต่างกัน
Armon Safai

ลองดูคำตอบล่าสุดของฉัน ฉันปรับปรุงมันเพื่อตอบคำถามโดยตรงและอธิบายได้ดีขึ้นด้วยตัวอย่าง
tuomastik

ฉันเห็นแล้วดังนั้นเมื่อคุณฝึกตัวจําแนกของคุณในที่สุดคุณใช้ข้อมูลทั้งหมดของคุณเพื่อฝึกการจําแนกหลังจากคุณเลือกอัลกอริทึมของคุณจากการตรวจสอบข้าม
Armon Safai

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

1

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

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

มาถึงรุ่นเดียวและหากคุณกำลังตรวจสอบด้วยการตรวจสอบความถูกต้องข้ามของ K-fold คุณสามารถรับข้อผิดพลาดโดยประมาณของข้อมูลทดสอบได้ แต่when you are actually training it finally, you can use the complete training dataเนื่องจากมีการสันนิษฐานว่าข้อมูลทั้งหมดจะทำงานได้ดีกว่าส่วนหนึ่งของมัน อาจเป็นบางครั้ง แต่นี่เป็นข้อสันนิษฐานทั่วไป)


Sooo เมื่อเราทำการตรวจสอบไขว้เราแค่เลือกรุ่นที่มีความแม่นยำในการทดสอบมากที่สุด?
Armon Safai

เมื่อคุณพูดว่า test คุณหมายถึงชุดข้อมูลการตรวจสอบความถูกต้องใช่ไหม
Hima Varsha

ใช่นั่นคือสิ่งที่ฉันหมายถึง
Armon Safai

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

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