ป่าสุ่มเกินไปหรือไม่


24

ฉันได้อ่านเกี่ยวกับป่าสุ่ม แต่ฉันไม่สามารถหาคำตอบที่ชัดเจนเกี่ยวกับปัญหาการ overfitting จากเอกสารต้นฉบับของ Breiman พวกเขาไม่ควรกระฉับกระเฉงเมื่อเพิ่มจำนวนต้นไม้ในป่า แต่ดูเหมือนว่าจะไม่มีฉันทามติเกี่ยวกับเรื่องนี้ นี่เป็นการสร้างความสับสนให้กับฉันค่อนข้างมาก

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


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

1
ISTR ที่ Breiman มีหลักฐานตามกฎหมายจำนวนมาก มีคนค้นพบข้อบกพร่องในการพิสูจน์ว่า?
JenSCDC

คำตอบ:


22

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

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

จากที่นี่ความแปรปรวนของข้อผิดพลาดการวางนัยทั่วไปที่คาดหวังของวงดนตรีสอดคล้องกับ:

โดยที่p(x)สัมประสิทธิ์สหสัมพันธ์ของเพียร์สันอยู่ระหว่างการทำนายของแบบจำลองทั้งสองแบบที่ได้รับการฝึกอบรมบนข้อมูลเดียวกันจากเมล็ดอิสระสองเมล็ด ถ้าเราเพิ่มจำนวนของ DT ใน RF ที่มีขนาดใหญ่ความแปรปรวนของวงดนตรีที่ลดลงเมื่อM ρ(x)<1ดังนั้นความแปรปรวนของวงดนตรีจึงมีขนาดเล็กกว่าความแปรปรวนของแต่ละแบบอย่างเคร่งครัด

สรุปการเพิ่มจำนวนของรุ่นที่สุ่มแต่ละตัวในชุดจะไม่เพิ่มข้อผิดพลาดทั่วไป


1
นั่นคือสิ่งที่ Leo Breiman และทฤษฎีกล่าว แต่โดยสังเกตุดูเหมือนว่าพวกเขามีความเหมาะสมอย่างแน่นอน ตัวอย่างเช่นปัจจุบันฉันมีโมเดลที่มี CV MSE 10 เท่าที่ 0.02 แต่เมื่อวัดกับความจริงภาคพื้น CV MSE คือ 0.4 OTOH ถ้าฉันลดความลึกของต้นไม้และหมายเลขต้นไม้ประสิทธิภาพของแบบจำลองจะดีขึ้นอย่างมีนัยสำคัญ
Hack-R

4
หากคุณลดความลึกของต้นไม้เป็นกรณีอื่นเนื่องจากคุณกำลังเพิ่มการทำให้เป็นปกติซึ่งจะลดความหนาแน่นมากเกินไป พยายามพล็อต MSE เมื่อคุณเพิ่มจำนวนต้นไม้ในขณะที่รักษาพารามิเตอร์ที่เหลือไม่เปลี่ยนแปลง ดังนั้นคุณมี MSE ในแกน y และ num_tress ในแกน x คุณจะเห็นว่าเมื่อเพิ่มต้นไม้มากขึ้นข้อผิดพลาดจะลดลงอย่างรวดเร็วและจากนั้นจะมีที่ราบสูง แต่มันจะไม่เพิ่มขึ้น
tashuhka

9

คุณอาจต้องการตรวจสอบข้ามการตรวจสอบ - เว็บไซต์ stachexchange สำหรับหลายสิ่งรวมถึงการเรียนรู้ของเครื่อง

โดยเฉพาะอย่างยิ่งคำถามนี้ (ที่มีชื่อเหมือนกันทั้งหมด) ได้รับคำตอบแล้วหลายครั้ง ตรวจสอบลิงก์เหล่านี้: /stats//search?q=random+forest+overfit

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


3
  1. ป่าสุ่มไม่เหมาะสม
  2. ฟอเรสต์แบบสุ่มไม่เพิ่มข้อผิดพลาดในการวางนัยทั่วไปเมื่อมีการเพิ่มต้นไม้ลงในโมเดล ความแปรปรวนของการวางนัยทั่วไปจะมีค่าเป็นศูนย์โดยใช้ต้นไม้มาก

ฉันทำการทดลองง่ายมาก ฉันสร้างข้อมูลสังเคราะห์แล้ว:

y = 10 * x + noise

ฉันฝึกสองโมเดลป่าสุ่ม:

  • ต้นหนึ่งเต็มไปด้วยต้นไม้
  • หนึ่งเดียวกับต้นไม้ที่ถูกตัดแต่ง

โมเดลที่มีต้นไม้เต็มมีข้อผิดพลาดของรถไฟต่ำกว่า แต่มีข้อผิดพลาดในการทดสอบสูงกว่าโมเดลที่มีต้นไม้ที่ตัดแล้ว คำตอบของทั้งสองรุ่น:

การตอบสนอง

มันเป็นหลักฐานที่ชัดเจนของการ overfitting จากนั้นฉันก็ใช้พารามิเตอร์ไฮเปอร์ของโมเดลที่ติดตั้งมากเกินไปและตรวจสอบข้อผิดพลาดขณะที่เพิ่มในแต่ละขั้นตอนที่ 1 ทรี ฉันได้พล็อตต่อไปนี้:

ปลูกต้นไม้

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


1

ชุดข้อมูล -> ข้อผิดพลาด OOB ที่คลาดเคลื่อน

ฉันพบกรณีของ RF ที่น่าสนใจในการฝึกปฏิบัติงานของฉัน เมื่อข้อมูลมีโครงสร้าง RF overfits ในการสังเกต OOB

รายละเอียด:

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

ง่ายต่อการคาดการณ์ในกรณีที่มีข้อผิดพลาด autocorrelation:
รู้จักรู้จักทำนายทำนายทำนาย - กรณี OBB
ยากขึ้นหนึ่ง:
รู้จักรู้จักรู้จักทำนายทำนาย - กรณีทำนายโลกแห่งความจริง

ฉันหวังว่ามันจะน่าสนใจ

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