มี overfitting ในวิธีการ modellng นี้หรือไม่


11

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

วัตถุประสงค์ของบทความนี้คือ

  • เปรียบเทียบประสิทธิภาพของต้นไม้การถดถอยแบบไล่ระดับสีไล่ระดับกับการสุ่มป่าบนชุดข้อมูล

  • ดูประสิทธิภาพของรุ่นสุดท้ายที่เลือก (ทั้ง GBM หรือ RF)

gbmและแพคเกจในการวิจัยที่มีการใช้พร้อมกับrandomForest
caret

กระบวนการตามเป็นดังนี้:

  • การประมวลผลข้อมูลเบื้องต้นล่วงหน้า (เช่นการเสียบค่าที่ขาดหายไปของตัวทำนายที่ระบุด้วยหมวดหมู่ที่แตกต่างที่เรียกว่า "หายไป") ตัวแปรเป้าหมายไม่ได้พิจารณาถึงการประมวลผลล่วงหน้าใด ๆ (ซึ่งน้อยมาก)
  • สร้างตารางค่าสำหรับเมตา - พารามิเตอร์ของแต่ละอัลกอริทึม (เช่นจำนวนการวนซ้ำสำหรับ GBM)
  • สร้างชุดข้อมูลแยก 25 ชุด (การฝึกอบรม 65% และการทดสอบ 35%)

ทำซ้ำ 25 ครั้งต่อไปนี้สำหรับ GBM (แต่ละครั้งใช้หนึ่งในการสุ่มแยกรถไฟ / ทดสอบแต่ละครั้งที่การฝึกอบรมและชุดทดสอบเป็น "การเปลี่ยนแปลงในปัจจุบัน" ของการเปลี่ยนแปลงหลักสูตร

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

เมื่อ 25 การวัดประสิทธิภาพ (จริง ๆ แล้วเป็นการวัดเฉพาะโดเมน แต่คิดว่าเป็นความแม่นยำ) ในแบบนี้ให้ทำตามกระบวนการเดียวกันโดยใช้ตัวอย่างรถไฟและการทดสอบอิสระที่เหมือนกันสำหรับ RF (กระบวนการเดียวกันที่แตกต่างกันเท่านั้น ค้นหาตารางแน่นอน)

ตอนนี้ฉันมี 25 วัดประสิทธิภาพจากชุดทดสอบ "ปัจจุบัน" สำหรับ GBM และ RF ฉันเปรียบเทียบพวกเขาโดยใช้แบบทดสอบการจัดอันดับแบบมีลายเซ็นของวิลคอกซันและแบบทดสอบการเปลี่ยนแปลง ฉันพบว่า GBM เหนือกว่า ฉันยังอ้างว่าการกระจายตัวของการวัดประสิทธิภาพจาก 25 การทำงานเหล่านี้สำหรับ GBM นั้นเป็นประสิทธิภาพที่คาดหวังของตัวจําแนก GBM สุดท้าย

สิ่งที่ฉันไม่ได้ทำคือการดึงชุดการทดสอบแบบสุ่มจากจุดเริ่มต้นและวางไว้เพื่อเปรียบเทียบกับรุ่น GBM สุดท้ายที่สร้างจากข้อมูลการฝึกอบรมทั้งหมด ฉันยืนยันว่าสิ่งที่ฉันทำจริง ๆ แล้วดีกว่ามากเพราะฉันทำซ้ำการแยกข้อมูล / ปรับแต่งแบบจำลอง / ทดสอบรอกระบวนการ 25 ครั้งเมื่อเทียบกับเพียงครั้งเดียว

ที่นี่มีความเหมาะสมหรือไม่ เนื่องจากมีการใช้งาน 25 ครั้งเพื่อเลือก GBM และ RF หมายความว่าการวัดประสิทธิภาพที่ได้จากกระบวนการไม่สามารถใช้เป็นการประเมินประสิทธิภาพสำหรับรุ่นเต็มได้หรือไม่

แก้ไข เพื่อตอบสนองต่อความคิดเห็นของ Wayne นี่คือสิ่งที่ทำระหว่างการวิ่ง 25 ครั้ง:

  1. ข้อมูลตัวอย่างสำหรับชุดฝึกอบรม (i = 1, .. , 25) ถูกแบ่งออกเป็น 5 กลุ่มที่มีขนาดเท่ากัน แบบจำลองนั้นเหมาะสมกับการใช้ 4 จาก 5 กลุ่มการตั้งค่าพารามิเตอร์ GBM (เช่นจำนวนการวนซ้ำ) เท่ากับค่าในตาราง jth (j = 1, .. , 18)
  2. ประสิทธิภาพของกลุ่มที่ 5 คำนวณโดยใช้แบบจำลองนี้
  3. ขั้นตอนที่ 1 และ 2 ถูกทำซ้ำอีก 4 ครั้ง (CV แบบพับเก่าปกติพร้อม k = 5) ประสิทธิภาพถูกเฉลี่ยจากการดำเนินการย่อย 5 รายการซึ่งจะรวมถึงประสิทธิภาพที่คาดหวังของ GBM ด้วยชุดของค่าพารามิเตอร์ที่แน่นอน
  4. ขั้นตอนที่ 1 -3 ถูกทำซ้ำสำหรับ "แถว" 17 รายการอื่นในตาราง

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

เมื่อกระบวนการทั้งหมดนี้เสร็จสิ้น 25 ครั้งมีการวัดประสิทธิภาพ 25 แบบสำหรับ GBM จากนั้นพวกเขาก็รวมตัวกันเพื่อ RF ในวิธีเดียวกัน

หลังจากเปรียบเทียบและเลือก GBM ฉันดูที่การวัดประสิทธิภาพ 25 ข้อเหล่านั้นและหาค่าเฉลี่ยและข้อผิดพลาด Stnd เพื่อกำหนดช่วงความมั่นใจสำหรับโมเดล GBM ในข้อมูลนี้


ฉันต้องการดูรายละเอียดเพิ่มเติมในหัวข้อย่อยแรกของคุณสำหรับส่วน "ทำซ้ำ 25 ครั้งต่อไปนี้ ... " ข้อมูลใดที่ถูกพับ 5 ครั้งและข้อมูลที่ใช้สำหรับชุดพารามิเตอร์ meta แต่ละชุดเป็นอย่างไร
เวย์น

@ เวย์นโปรดดูการแก้ไขของฉัน
B_Miner

คำตอบ:


5

ลองนึกภาพแทนเพียงแค่เลือก GBM vs RF คุณแทนที่จะเลือกตัวแยกประเภท GBM 100 ตัว (สมมติว่าการฝึกอบรม GBM ใช้การสุ่มบางชนิดและคุณกำหนดให้สุ่ม 1 ถึง 100) จากนั้นคุณจะเลือกหนึ่งใน 100 GBMs เป็น GBM ที่ดีที่สุด แต่มันก็เกือบจะแน่นอนว่าหนึ่งใน 100 โมเดลที่คุณเลือกได้โชคดีที่เอาชนะพี่น้องได้ถึง 99 ตัวดังนั้นการประเมินประสิทธิภาพของคุณจะเป็นแง่ดี

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


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

แน่นอนว่าฉันไม่ได้ใช้ข้อมูลการฝึกอบรมเพื่อประเมินประสิทธิภาพ แต่กรณีนี้ดูเหมือนจะแตกต่างและใช้ได้ ....
B_Miner

@B_Miner ฉันคิดว่ามันเป็นการละเมิดเล็กน้อย แต่ฉันไม่ได้อยู่ในคณะกรรมการวิทยานิพนธ์ของคุณ: P
rrenaud

เนื่องจากมีการละเมิดอยู่คุณจะต้องใช้แอตทริบิวต์เพื่อ "ใช้ข้อมูลเดียวกันสำหรับการเลือกแบบจำลอง (GBM บน RF หรือ GBM เทียบกับตัวเลือกอื่น 100 ตัวเลือก) และใช้การวัดข้อผิดพลาดที่เกิดขึ้นจากมัน"
B_Miner

3

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

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

ที่ระดับบนสุดดูเหมือนว่าคุณอาจต้องการทำการตรวจสอบ bootstrap ซึ่งในกรณีนี้ double-bootstrap จะทำงานกับระดับบนและล่าง แต่ระดับบนสุดของคุณไม่ใช่ bootstrap ที่เหมาะสม

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


คุณหมายถึงอะไรโดยระดับบนสุด - การทำซ้ำ 25 ครั้งของการออกจากกลุ่มซ้ำ ๆ
B_Miner

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