เมื่อใดที่จะใช้ Random Forest เหนือ SVM และในทางกลับกัน


28

เมื่อไหร่จะใช้Random Forestซ้ำSVMและในทางกลับกัน?

ฉันเข้าใจว่าcross-validationและการเปรียบเทียบแบบจำลองเป็นสิ่งสำคัญในการเลือกแบบจำลอง แต่ที่นี่ฉันต้องการเรียนรู้เพิ่มเติมเกี่ยวกับกฎง่ายๆและการวิเคราะห์พฤติกรรมของทั้งสองวิธี

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


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

คำตอบ:


29

ฉันจะบอกว่าตัวเลือกขึ้นอยู่กับว่าคุณมีข้อมูลมากแค่ไหนและอะไรคือจุดประสงค์ของคุณ "กฎแห่งหัวแม่มือ" สองสามข้อ

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

Random Forest ทำงานได้ดีด้วยการผสมผสานของคุณสมบัติตัวเลขและหมวดหมู่ เมื่อคุณสมบัติอยู่ในสเกลต่างๆมันก็ใช้ได้เช่นกัน พูดโดยประมาณด้วย Random Forest คุณสามารถใช้ข้อมูลได้เหมือนเดิม SVM เพิ่ม "ระยะขอบ" ให้สูงสุดจึงอาศัยแนวคิดของ "ระยะทาง" ระหว่างจุดต่าง ๆ ขึ้นอยู่กับคุณที่จะตัดสินใจว่า "ระยะทาง" มีความหมายหรือไม่ ด้วยเหตุนี้การเข้ารหัสแบบร้อนแรงสำหรับคุณสมบัติที่เป็นหมวดหมู่จึงเป็นสิ่งที่ต้องทำ นอกจากนี้ขอแนะนำให้ใช้ min-max หรือสเกลอื่น ๆ ในขั้นตอนก่อนการประมวลผล

nม.n×nn2

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

สำหรับปัญหาเหล่านั้นที่ SVM นำไปใช้โดยทั่วไปแล้วจะทำงานได้ดีกว่า Random Forest

SVM ช่วยให้คุณ "สนับสนุนเวกเตอร์" ซึ่งเป็นคะแนนในแต่ละชั้นที่ใกล้เคียงที่สุดกับขอบเขตระหว่างชั้นเรียน พวกเขาอาจสนใจในการตีความ


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

5

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


3

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

ฉันจะลองใช้ Logistic Regression - ตัวจําแนกที่แปลได้ดี)

เพื่อสรุปมัน - กฎง่ายๆคือลองอะไรและเปรียบเทียบสิ่งที่ให้ผลลัพธ์ / การตีความที่ดีที่สุด


1

เพื่อเติมเต็มจุดดีที่ระบุไว้แล้ว:

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

นอกจากนี้วิธีการนำอัลกอริธึมมาใช้ (และสำหรับเหตุผลทางทฤษฎี) การสุ่มฟอเรสต์มักจะเร็วกว่า SVM ที่ไม่ใช่เชิงเส้น แท้จริงในฐานะ @Ianenok SVM มีแนวโน้มที่จะไม่สามารถใช้งานได้เกิน 10,000 จุดข้อมูล

อย่างไรก็ตาม SVM นั้นทำงานได้ดีกว่าในชุดข้อมูลบางชุด (รูปภาพ, microarray data ... )

ดังนั้นการตรวจสอบข้ามจึงเป็นวิธีที่ดีที่สุดที่จะทราบว่าวิธีใดมีประสิทธิภาพดีที่สุด

ที่มา: ป่าสุ่มเทียบกับ SVM


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