การตรวจสอบข้ามและการปรับพารามิเตอร์ให้เหมาะสม


14

ฉันมีคำถามเกี่ยวกับการปรับพารามิเตอร์ให้เหมาะสมเมื่อฉันใช้การตรวจสอบความถูกต้องไขว้ 10 เท่า

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

หรือ

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

วิธีใดที่ถูกต้องสำหรับการตรวจสอบข้าม ขอบคุณมาก.


คำถามนี้: stats.stackexchange.com/questions/1826/…มีคำตอบที่ดีสองข้อ (คะแนนสูงสุด) ฉันคิดว่าพวกเขาสามารถช่วยคุณได้ในคำถามของคุณ ประการที่สองคือสิ่งที่คุณต้องการ OBS: ฉันต้องการเขียนเป็นความคิดเห็น แต่ฉันไม่สามารถทำได้ดังนั้นฉันจึงตอบ
Augusto

คำตอบ:


11

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

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


ขออภัยประเภทของพารามิเตอร์ที่ฉันถามคือพารามิเตอร์หลายมิติตามที่คุณพูด
เควิน

เช่นพารามิเตอร์ c และ g ใน libSVM ดังนั้นฉันควรใช้ c และ g เดียวกันในการฝึกอบรมแบบจำลองทุกเท่าเป็นวิธี (2) ที่ฉันกล่าวถึงข้างต้นแล้วเลือกอันที่ดีที่สุด? ขอบคุณมาก.
เควิน

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

ขอบคุณมาก. ฉันพยายามสรุปคำตอบ ข้อมูลถูกแบ่งเป็น 10 เท่า: fold-1: (train1, test1) ... fold-10: (train10, test10) จากนั้นใช้ a (c1, g1) เพื่อฝึกและทดสอบกับ fold-1 ถึง fold-10 เฉลี่ยความถูกต้องของการพับทั้งหมด ลองอีก (c2, g2) เพื่อทำกระบวนการเดียวกัน ... ทำซ้ำจนกว่าฉันจะหาสิ่งที่ดีที่สุด (c, g) และความแม่นยำเฉลี่ยที่ดีที่สุด (c, g) จะเป็นผลมาจากการตรวจสอบความถูกต้องแบบครอสโอเวอร์ 10 เท่าของฉัน
เควิน

1
ฟังดูถูกต้อง ...
Joel

16

ฉันคิดว่าคำตอบที่ยอมรับในปัจจุบันไม่สมบูรณ์ในทางที่โชคร้าย ฉันไม่เห็นด้วยกับประโยค

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

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

  1. สร้างแบบจำลองที่ดีที่สุดที่คุณสามารถทำได้
  2. รับการแสดงผลที่แม่นยำว่าทำงานได้ดีเพียงใด

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

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

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


1
เอริคคุณช่วยกรุณาอ้างอิงถึงวิธีการทำกระบวนการนี้ได้หรือไม่?
chao

สวัสดี @Erik ลำดับทั่วไปของการวิเคราะห์จึงเป็น (1) ค้นหาพารามิเตอร์การปรับแต่งที่ดีที่สุดด้วยการตรวจสอบความถูกต้อง, (2) แบบจำลอง Retrain (พร้อมพารามิเตอร์การปรับที่ได้รับ) บนชุดข้อมูลการฝึกอบรมทั้งหมดเพื่อรับพารามิเตอร์แบบจำลองและ (3) ) ดูการประเมินประสิทธิภาพโดยรวมของวิธีนี้โดยใช้การตรวจสอบความถูกต้องข้ามแบบซ้อน? สิ่งที่ฉันสับสนเกี่ยวกับคืออาจมีการเลือกพารามิเตอร์หลายค่าในกระบวนการของ nester CV ดังนั้น CV ที่ซ้อนกันจะไม่ตรวจสอบประสิทธิภาพโดยรวมของพารามิเตอร์ / พารามิเตอร์แบบจำลองที่เราได้รับข้างต้นโดยเฉพาะ
Michelle

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