เมื่อใดที่จะหลีกเลี่ยงป่าสุ่ม?


25

ป่าสุ่มที่รู้จักกันดีในการดำเนินการอย่างเป็นธรรมได้ดีบนความหลากหลายของงานและได้รับการเรียกว่าLeatherman วิธีการเรียนรู้ มีปัญหาประเภทใดบ้างหรือเงื่อนไขใดบ้างที่ควรหลีกเลี่ยงการใช้ฟอเรสต์แบบสุ่ม?


8
สวัสดี "PLS คือ leatherman ของ ... ", "Bootstrap เป็น leatherman ของ ... ", "Random forest เป็น Leatherman ของ ... " <- ฉันแนะนำให้คุณสงสัยเกี่ยวกับการเรียกร้องดังกล่าว มันเป็นเพียงแค่ความคิดเห็น :)
Stéphane Laurent

คำตอบ:


24

เมื่อนึกถึงภาษาเฉพาะของใบเสนอราคา leatherman นั้นเป็นเครื่องมือหลายอย่าง: ฮาร์ดแวร์ชิ้นเดียวที่มี gizmos น้อยมากมายซ่อนตัวอยู่ในนั้น มันเป็นคีมและมีดและไขควงและอีกมากมาย! แทนที่จะต้องพกเครื่องมือแต่ละอย่างเหล่านี้แยกต่างหาก leatherman เป็นรายการเดียวที่คุณสามารถหนีบกับกางเกงของคุณได้ สิ่งนี้สะดวกแต่การแลกเปลี่ยนคือเครื่องมือแต่ละอย่างนั้นไม่ใช่ดีที่สุดในงาน ที่เปิดกระป๋องใช้งานยากบิตไขควงมักจะมีขนาดที่ไม่ถูกต้องและมีดสามารถทำได้มากกว่าการถาก หากการทำงานใด ๆ เหล่านี้มีความสำคัญคุณจะได้รับบริการที่ดีกว่าด้วยเครื่องมือพิเศษ: มีดจริงไขควงจริงหรือคีมจริง

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

มีบางกรณีที่เห็นได้ชัดว่าป่าสุ่มจะต้องดิ้นรน:

  • Sparsity - เมื่อข้อมูลกระจัดกระจายมากเป็นไปได้มากว่าสำหรับบางโหนดตัวอย่าง bootstrapped และส่วนย่อยของคุณสมบัติแบบสุ่มจะทำงานร่วมกันเพื่อสร้างพื้นที่คุณลักษณะคงที่ ไม่ต้องมีการแบ่งที่มีประสิทธิผลดังนั้นจึงไม่น่าที่ลูก ๆ ของโหนดนี้จะเป็นประโยชน์ XGBoost สามารถทำได้ดีกว่าในบริบทนี้

  • ข้อมูลไม่ได้แกนชิด - สมมติว่ามีขอบเขตการตัดสินใจในแนวทแยงในพื้นที่ของทั้งสองคุณสมบัติx1และx2 2 แม้ว่านี่จะเป็นมิติข้อมูลที่เกี่ยวข้องเพียงอย่างเดียวกับข้อมูลของคุณ แต่จะใช้โมเดลการสุ่มป่าทั่วไปหลาย ๆ ตัวแยกกันเพื่ออธิบายขอบเขตแนวทแยงนั้น นี้เป็นเพราะแต่ละคนแยกเป็นเชิงตั้งฉากกับแกนของทั้งx1หรือx2 2 (สิ่งนี้ควรเป็นสัญชาตญาณเพราะโมเดลฟอเรสต์แบบสุ่มธรรมดากำลังแยกส่วนของรูปแบบx1>4.) Rotation forest ซึ่งดำเนินการฉาย PCA บนชุดย่อยของคุณสมบัติที่เลือกสำหรับแต่ละการแยกสามารถใช้เพื่อเอาชนะสิ่งนี้: การคาดการณ์ในรูปแบบมุมฉากโดยหลักการแล้วจะลดอิทธิพลของคุณสมบัติที่จัดเรียงตามแนวแกนเนื่องจากการแยก จะไม่จัดแนวแกนในพื้นฐานเดิมอีกต่อไป

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

  • ฟอเรสต์แบบสุ่มนั้นใช้งานได้กับข้อมูลแบบตารางเท่านั้นกล่าวคือไม่มีความสัมพันธ์ที่แข็งแกร่งและมีความสำคัญในเชิงคุณภาพระหว่างคุณลักษณะในแง่ของข้อมูลที่เป็นภาพหรือการสังเกตที่ถูกเชื่อมต่อเครือข่ายเข้าด้วยกันบนกราฟ โครงสร้างเหล่านี้มักไม่ได้รับการประเมินอย่างถูกต้องจากหลาย ๆ ฉากของพาร์ติชั่น หากข้อมูลของคุณอยู่ในอนุกรมเวลาหรือเป็นชุดของภาพหรือมีชีวิตอยู่บนกราฟหรือมีโครงสร้างที่ชัดเจนอื่น ๆ ฟอเรสต์แบบสุ่มจะมีช่วงเวลาที่ยากลำบากในการจดจำ ฉันไม่สงสัยเลยว่านักวิจัยได้พัฒนาวิธีการต่าง ๆ เพื่อรองรับสถานการณ์เหล่านี้ แต่ป่าสุ่มวานิลลาไม่จำเป็นต้องเลือกโครงสร้างเหล่านี้ในวิธีที่เป็นประโยชน์ ข่าวดีก็คือโดยปกติแล้วคุณจะรู้เมื่อเป็นเช่นนี้คือคุณรู้ว่าคุณมีรูปภาพ, อนุกรมเวลาหรือกราฟเพื่อทำงานกับ

ฉันคิดว่าป่าสุ่มวานิลลามีศักยภาพที่จะจำแนกพาร์ติชันที่ไม่ใช่สี่เหลี่ยม เราสามารถมีคุณสมบัติสมการกำลังสองเช่นและรับรู้ขอบเขตเช่น x ^ 2 <c
Aniruddha Acharya

2
@AniruddhaAcharya ฉันพูดว่า "ต่อสู้" ไม่ล้มเหลว คำตอบของฉันที่นี่ทำให้ชัดเจนว่าคุณลักษณะกำลังสองไม่ใช่ปัญหาที่ผ่านไม่ได้ แต่เส้นทแยงมุมหรือ quadratics หรือการแยกประเภทอื่นที่ไม่ได้จัดแนวนั้นจะต้องใช้ต้นไม้เพื่อแยกคุณสมบัติเหล่านั้นซ้ำแล้วซ้ำอีกในรูปแบบสี่เหลี่ยมผืนผ้าเพื่อประมาณเส้นทแยงมุม / เส้นโค้ง คุณสามารถเห็นเอฟเฟกต์นั้นในพล็อตของโพสต์นี้: ดูที่มุมที่คมชัด RF กำลังใช้สี่เหลี่ยมจัตุรัสเพื่อประมาณวงกลม
Sycorax พูดว่า Reinstate Monica

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

1
@AniruddhaAcharya หากคุณรู้ว่าคำศัพท์สี่เหลี่ยมเป็นรูปแบบที่ถูกต้องคุณไม่จำเป็นต้องมีฟอเรสต์แบบสุ่ม: เพียงแค่เพิ่มคำสี่เหลี่ยมจัตุรัสลงในแบบจำลองเชิงเส้น RF เป็นวิธีที่ดีในการประมาณฟังก์ชั่นโดยพลการโดยเฉพาะอย่างยิ่งเมื่อพวกเขามีฟังก์ชั่นการตัดสินใจแนวแกน
Sycorax พูดว่า Reinstate Monica

เหตุใดวิศวกรรมคุณสมบัติ (สมการกำลังสอง) ที่ได้รับการแนะนำโดย @AniruddhaAcharya ไม่ใช่ขั้นตอนที่มีประโยชน์ที่จะใช้ร่วมกับ RF's? ใช่คุณสมบัติเหล่านั้นสามารถเพิ่มลงในโมเดลเชิงเส้นได้ แต่สิ่งหลังไม่ได้แสดงพฤติกรรมของการรวมการมีส่วนร่วมของผลลัพธ์จำนวนมากซึ่งได้รับการปรับให้เหมาะสมที่สุดสำหรับแต่ละชุดย่อยของคุณลักษณะที่แตกต่างกัน
javadba

22

มุมแหลม ความถูกต้อง

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

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

" Leathermen " ไม่มีอยู่ ไม่มี "กระสุนเงิน" มีกล่องเครื่องมือ รู้จักเครื่องมือของคุณและดูแลพวกมันให้ดีเพื่อที่พวกเขาจะได้ดูแลคุณ ระวัง "เมื่อคุณเป็นค้อนจากนั้นทุกปัญหาดูเหมือนกับเล็บ" โดยเฉพาะอย่างยิ่งเมื่อคุณไม่มีห้องสมุดหนาแน่นในกล่องเครื่องมือของคุณ

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

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


2
เป็นผู้สนับสนุนของปีศาจที่นี่: ไม่มีอะไรจะ " พอดีกับรายละเอียดและสิ่งที่ละเอียดสูงได้ดีเมื่อขนาดตัวอย่างต่ำ "
usεr11852พูดว่า Reinstate Monic

5

นี่เป็นครั้งแรกที่ฉันตอบคำถามดังนั้นอย่าตรึงฉันไว้เลย .. แต่ฉันคิดว่าฉันสามารถตอบคำถามของคุณได้:

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

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

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

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

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


2
คำตอบที่ดี แต่จุดสุดท้ายของคุณไม่ถูกต้อง: การฝึกอบรมมินิแบทช์สามารถจะนำมาใช้สำหรับเครื่องทั่วไปขั้นตอนวิธีการเรียนรู้ดูตัวอย่างH2O
jubo

โอเคน่าสนใจฉันไม่รู้ว่า คุณกำลังบอกว่าการใช้วิธีการเหล่านี้เราสามารถฝึกอบรมต้นไม้ (การตัดสินใจ) โดยใช้การเรียนรู้แบบกลุ่มย่อย / SGD และสร้างต้นไม้เดียวโดยใช้ข้อมูลการฝึกอบรมส่วนใหญ่แยกกัน (พูด 65%)?
MJW

1
ฉันคิดว่าป่าสุ่มยังคงดีเมื่อจำนวนฟีเจอร์สูง - อย่าใช้ฟีเจอร์มากมายทันทีเมื่อสร้างต้นไม้ต้นเดียวและในตอนท้ายคุณจะมีฟอเรสต์ของตัวแยกประเภทอิสระที่ควรรวม ( หวังว่า) ทำได้ดี
Alexey Grigorev

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

2
เหตุผลสำหรับ (1) คืออะไร? คุณทำการอ้างสิทธิ์ แต่ไม่ได้ให้การสนับสนุนอาร์กิวเมนต์ใด ๆ
Sycorax พูดว่า Reinstate Monica

0

ประการแรกป่าสุ่มไม่สามารถใช้กับชนิดข้อมูลต่อไปนี้:

  • ภาพ
  • เสียง
  • ข้อความ (หลังจากประมวลผลข้อมูลล่วงหน้าจะกระจัดกระจายและ RF ทำงานได้ไม่ดีกับข้อมูลกระจัดกระจาย)

สำหรับชนิดข้อมูลแบบตารางคุณควรตรวจสอบฟอเรสต์แบบสุ่มเสมอเพราะ:

  • มันต้องการการเตรียมข้อมูลและการประมวลผลล่วงหน้าที่น้อยกว่า Neural Networks หรือ SVM ตัวอย่างเช่นคุณไม่จำเป็นต้องทำการปรับขนาด
  • สำหรับการฝึกป่าสุ่มคุณสามารถใช้พารามิเตอร์เริ่มต้นและกำหนดจำนวนของต้นไม้ ( ยิ่งต้นไม้ใน RF ดีขึ้น ) เมื่อคุณเปรียบเทียบฟอเรสต์แบบสุ่มกับเครือข่ายประสาทเทียมการฝึกอบรมนั้นง่ายมาก (ไม่จำเป็นต้องกำหนดสถาปัตยกรรมหรือปรับแต่งอัลกอริทึมการฝึกอบรม) Random Forest ง่ายต่อการฝึกอบรมมากกว่า Neural Networks
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.