อัลกอริธึมสุ่มป่า: ควรใช้เมื่อใดและอย่างไร [ด้วยข้อดีและข้อเสีย]
เผยแพร่แล้ว: 2020-12-24Data Science ครอบคลุมอัลกอริธึมที่หลากหลายซึ่งสามารถแก้ปัญหาที่เกี่ยวข้องกับการจำแนกประเภทได้ ฟอเรสต์สุ่มมักจะปรากฏที่ด้านบนสุดของลำดับชั้นการจำแนกประเภท อัลกอริธึมอื่นๆ ได้แก่ - รองรับเวคเตอร์แมชชีน ตัวแยกประเภทอคติไร้เดียงสา และทรีการตัดสินใจ
ก่อนเรียนรู้เกี่ยวกับอัลกอริธึม Random Forest อันดับแรก มาทำความเข้าใจการทำงานพื้นฐานของ Decision tree ก่อน และวิธีรวมต้นไม้เหล่านี้เพื่อสร้าง Random Forest
สารบัญ
ต้นไม้ตัดสินใจ
อัลกอริธึมแผนผังการตัดสินใจจัดอยู่ในหมวดหมู่ของอัลกอริทึมการเรียนรู้ภายใต้การดูแล เป้าหมายของแผนผังการตัดสินใจคือการทำนายคลาสหรือค่าของตัวแปรเป้าหมายตามกฎที่พัฒนาขึ้นในระหว่างกระบวนการฝึกอบรม เริ่มจากรากของต้นไม้ เราเปรียบเทียบค่าของแอตทริบิวต์รากกับจุดข้อมูลที่เราต้องการจัดประเภท และบนพื้นฐานของการเปรียบเทียบ เราจะข้ามไปยังโหนดถัดไป
ต่อไป มาพูดถึงคำศัพท์สำคัญบางคำและความสำคัญในการจัดการต้นไม้การตัดสินใจกัน
- โหนดราก : เป็นโหนดบนสุดของต้นไม้จากตำแหน่งที่การแบ่งเกิดขึ้นเพื่อสร้างโหนดที่เป็นเนื้อเดียวกันมากขึ้น
- การแยกจุด ข้อมูล : จุดข้อมูลจะถูกแบ่งในลักษณะที่ลดค่าเบี่ยงเบนมาตรฐานหลังจากการแยก
- ข้อมูลที่ได้รับ : ข้อมูลที่ได้มาคือการลดลงในส่วนเบี่ยงเบนมาตรฐานที่เราต้องการบรรลุหลังจากการแยกส่วน การลดค่าเบี่ยงเบนมาตรฐานที่มากขึ้นหมายถึงโหนดที่เป็นเนื้อเดียวกันมากขึ้น
- เอนโทรปี : เอนโทรปีเป็นความผิดปกติที่มีอยู่ในโหนดหลังจากการแยกเกิดขึ้น ความเป็นเนื้อเดียวกันมากขึ้นในโหนดหมายถึงเอนโทรปีน้อยลง
อ่าน: คำถามสัมภาษณ์ต้นไม้ตัดสินใจ
ต้องการอัลกอริธึมฟอเรสต์แบบสุ่ม
อัลกอริธึม Decision Tree มีแนวโน้มที่จะ overfitting เช่น มีความแม่นยำสูงในข้อมูลการฝึกอบรมและประสิทธิภาพต่ำในข้อมูลการทดสอบ สองวิธีที่นิยมในการป้องกันการใช้ข้อมูลมากเกินไป ได้แก่ การตัดแต่งกิ่งและการสุ่มฟอเรสต์ การตัดแต่งกิ่งหมายถึงการลดขนาดต้นไม้โดยไม่กระทบต่อความแม่นยำโดยรวมของต้นไม้

ตอนนี้ เรามาพูดถึงอัลกอริธึมฟอเรสต์แบบสุ่ม
ข้อได้เปรียบที่สำคัญอย่างหนึ่งของฟอเรสต์สุ่มคือความสามารถในการใช้ทั้งในการจัดหมวดหมู่และในปัญหาการถดถอย
ตามชื่อของมัน ป่าไม้ถูกสร้างขึ้นจากการรวมต้นไม้หลายต้นเข้าด้วยกัน ในทำนองเดียวกัน อัลกอริธึมแบบสุ่มของฟอเรสต์จะรวมอัลกอริธึมการเรียนรู้ด้วยเครื่องหลายตัว (แผนผังการตัดสินใจ) เพื่อให้ได้ความแม่นยำที่ดีขึ้น สิ่งนี้เรียกว่าการเรียนรู้ทั้งมวล ความสัมพันธ์ที่ต่ำระหว่างแบบจำลองเหล่านี้ช่วยสร้างความแม่นยำที่ดีกว่าการคาดการณ์แต่ละรายการ แม้ว่าต้นไม้บางต้นจะสร้างการทำนายที่ผิดพลาด ต้นไม้ส่วนใหญ่จะสร้างการทำนายที่แท้จริง ดังนั้นความแม่นยำโดยรวมของแบบจำลองก็เพิ่มขึ้น
อัลกอริธึมฟอเรสต์แบบสุ่มสามารถใช้ได้ทั้งใน python และ R เช่นเดียวกับอัลกอริธึมแมชชีนเลิร์นนิงอื่นๆ
เมื่อใดควรใช้ Random Forest และเมื่อใดควรใช้รุ่นอื่น
ก่อนอื่น เราต้องตัดสินใจว่าปัญหานั้นเป็นเชิงเส้นหรือไม่เชิงเส้น ถ้าปัญหาเป็นเส้นตรง เราควรใช้ Simple Linear Regression ในกรณีที่มีจุดสนใจเพียงจุดเดียว และหากเรามีคุณสมบัติหลายอย่าง เราก็ควรใช้ Multiple Linear Regression อย่างไรก็ตาม ถ้าปัญหาไม่เชิงเส้น เราควรถดถอยพหุนาม SVR แผนผังการตัดสินใจ หรือสุ่ม
ป่า. จากนั้นใช้เทคนิคที่เกี่ยวข้องอย่างมากซึ่งประเมินประสิทธิภาพของโมเดล เช่น k-Fold Cross-Validation, Grid Search หรือ XGBoost เราสามารถสรุปโมเดลที่เหมาะสมเพื่อแก้ปัญหาของเราได้
ฉันจะรู้ได้อย่างไรว่าฉันควรใช้ต้นไม้กี่ต้น?
สำหรับผู้เริ่มต้น ฉันขอแนะนำให้กำหนดจำนวนต้นไม้ที่ต้องการโดยการทดลอง โดยปกติจะใช้เวลาน้อยกว่าการใช้เทคนิคจริงๆ เพื่อหาค่าที่ดีที่สุดโดยการปรับแต่งและปรับแต่งโมเดลของคุณ โดยการทดลองกับค่าไฮเปอร์พารามิเตอร์หลายๆ ค่า เช่น จำนวนต้นไม้ อย่างไรก็ตาม สามารถใช้เทคนิคต่างๆ เช่น cover k-Fold Cross-Validation และ Grid Search ได้ ซึ่งเป็นวิธีที่มีประสิทธิภาพในการกำหนดค่าที่เหมาะสมที่สุดของไฮเปอร์พารามิเตอร์ เช่น จำนวนต้นไม้

สามารถใช้ p-value สำหรับ Random Forest ได้หรือไม่
ในที่นี้ ค่า p จะไม่มีนัยสำคัญในกรณีของ Random Forest เนื่องจากเป็นแบบจำลองที่ไม่เป็นเชิงเส้น
บรรจุถุง
แผนผังการตัดสินใจมีความอ่อนไหวสูงต่อข้อมูลที่ได้รับการฝึกอบรม ดังนั้นจึงมีแนวโน้มที่จะเกิด Overfitting อย่างไรก็ตาม ฟอเรสต์สุ่มใช้ประโยชน์จากปัญหานี้ และอนุญาตให้ต้นไม้แต่ละต้นสุ่มตัวอย่างจากชุดข้อมูลเพื่อให้ได้โครงสร้างต้นไม้ที่แตกต่างกัน กระบวนการนี้เรียกว่าการบรรจุถุง
การบรรจุถุงไม่ได้หมายถึงการสร้างชุดย่อยของข้อมูลการฝึก หมายความว่าเรายังคงให้อาหารต้นไม้ด้วยข้อมูลการฝึก แต่ด้วยขนาด N เรานำตัวอย่างขนาด N (จุดข้อมูล N) มาแทนที่ข้อมูลเดิม
ความสำคัญของคุณลักษณะ
อัลกอริธึมของฟอเรสต์แบบสุ่มช่วยให้เราสามารถกำหนดความสำคัญของคุณลักษณะที่กำหนดและผลกระทบต่อการทำนายได้ มันคำนวณคะแนนสำหรับแต่ละคุณสมบัติหลังจากการฝึกอบรมและปรับขนาดในลักษณะที่รวมเข้าด้วยกัน ข้อมูลนี้ช่วยให้เราทราบว่าคุณลักษณะใดที่จะทิ้งเนื่องจากไม่มีผลกับกระบวนการคาดการณ์ทั้งหมด ด้วยคุณสมบัติที่น้อยกว่า โมเดลนี้จึงมีโอกาสน้อยที่จะตกเป็นเหยื่อของการสวมใส่มากเกินไป
ไฮเปอร์พารามิเตอร์
การใช้ไฮเปอร์พารามิเตอร์จะเพิ่มความสามารถในการคาดการณ์ของโมเดลหรือทำให้โมเดลเร็วขึ้น
ในการเริ่มต้น พารามิเตอร์ n_estimator คือจำนวนต้นไม้ที่อัลกอริทึมสร้างขึ้นก่อนที่จะทำการทำนายโดยเฉลี่ย ค่า n_estimator ที่สูง หมายถึงประสิทธิภาพที่เพิ่มขึ้นพร้อมการคาดการณ์ที่สูง อย่างไรก็ตาม ค่าที่สูงยังช่วยลดเวลาในการคำนวณของแบบจำลองอีกด้วย
ไฮเปอร์พารามิเตอร์ อีกตัวหนึ่งคือ max_features ซึ่งเป็นจำนวนคุณลักษณะทั้งหมดที่โมเดลพิจารณาก่อนที่จะแยกออกเป็นโหนดที่ตามมา

นอกจากนี้ min_sample_leaf คือจำนวนใบไม้ขั้นต่ำที่จำเป็นสำหรับการแยกโหนดภายใน
สุดท้าย random_state ใช้เพื่อสร้างเอาต์พุตคงที่เมื่อเลือกค่าที่แน่นอนของ random_state พร้อมกับไฮเปอร์พารามิเตอร์เดียวกันและข้อมูลการฝึกอบรม
ข้อดีและข้อเสียของอัลกอริทึมป่าสุ่ม
- ฟอเรสต์สุ่มเป็นอัลกอริธึมอเนกประสงค์ที่สามารถแก้ปัญหาทั้งการจัดหมวดหมู่และการถดถอย
- นอกจากนี้ ไฮเปอร์พารามิเตอร์ที่เกี่ยวข้องยังเข้าใจได้ง่าย และโดยปกติ ค่าเริ่มต้นของพารามิเตอร์จะส่งผลให้เกิดการคาดการณ์ที่ดี
- สุ่มป่าแก้ปัญหา overfitting ที่เกิดขึ้นในต้นไม้ตัดสินใจ
- ข้อจำกัดประการหนึ่งของ Random Forest คือ ต้นไม้จำนวนมากเกินไปอาจทำให้การประมวลผลของอัลกอริธึมช้าลง ดังนั้นจึงไม่มีประสิทธิภาพในการทำนายข้อมูลแบบเรียลไทม์
อ่านเพิ่มเติม: ประเภทของอัลกอริทึมการจำแนกประเภท
บทสรุป
อัลกอริธึมแบบสุ่มของฟอเรสต์เป็นอัลกอริธึมที่ทรงพลังมากและมีความแม่นยำสูง แอปพลิเคชันในชีวิตจริงในด้านวาณิชธนกิจ ตลาดหุ้น และเว็บไซต์อีคอมเมิร์ซทำให้เป็นอัลกอริธึมที่ทรงพลังมากในการใช้งาน อย่างไรก็ตาม ประสิทธิภาพที่ดีขึ้นสามารถทำได้โดยใช้อัลกอริธึมโครงข่ายประสาทเทียม แต่ในบางครั้ง อัลกอริธึมเหล่านี้มักจะซับซ้อนและต้องใช้เวลาในการพัฒนามากกว่า
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับโครงสร้างการตัดสินใจ แมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมอย่างเข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษามากกว่า 30+ การมอบหมายงาน, สถานะศิษย์เก่า IIIT-B, 5+ โครงการหลักที่ใช้งานได้จริง & ความช่วยเหลือด้านงานกับบริษัทชั้นนำ
อะไรคือข้อเสียของการใช้อัลกอริธึมฟอเรสต์แบบสุ่ม?
Random Forest เป็นอัลกอริธึมการเรียนรู้ของเครื่องที่ซับซ้อน ต้องใช้ทรัพยากรในการประมวลผลจำนวนมากเนื่องจากสร้างต้นไม้จำนวนมากเพื่อค้นหาผลลัพธ์ นอกจากนี้ เมื่อเทียบกับอัลกอริธึมอื่นๆ เช่น วิธีแผนผังการตัดสินใจ เทคนิคนี้ใช้เวลาฝึกอบรมเป็นจำนวนมาก เมื่อข้อมูลที่จัดให้เป็นแบบเชิงเส้น การถดถอยของฟอเรสต์แบบสุ่มทำงานได้ไม่ดี
อัลกอริทึมฟอเรสต์แบบสุ่มทำงานอย่างไร
ป่าสุ่มประกอบด้วยต้นไม้ตัดสินใจต่าง ๆ มากมาย คล้ายกับที่ป่าประกอบด้วยต้นไม้มากมาย ผลลัพธ์ของวิธีการสุ่มฟอเรสต์นั้นถูกกำหนดโดยการคาดการณ์ของแผนผังการตัดสินใจ วิธีการสุ่มฟอเรสต์ยังช่วยลดโอกาสที่ข้อมูลจะเกินพอดี การจำแนกประเภทป่าแบบสุ่มใช้กลยุทธ์ทั้งมวลเพื่อให้ได้ผลลัพธ์ที่ต้องการ แผนภูมิการตัดสินใจต่างๆ ได้รับการฝึกอบรมโดยใช้ข้อมูลการฝึกอบรม ชุดข้อมูลนี้ประกอบด้วยการสังเกตและคุณลักษณะที่เลือกแบบสุ่มหลังจากแยกโหนด
ต้นไม้การตัดสินใจแตกต่างจากป่าสุ่มอย่างไร
ป่าสุ่มไม่มีอะไรมากไปกว่าการรวบรวมต้นไม้แห่งการตัดสินใจ ทำให้เข้าใจยาก ป่าสุ่มอ่านยากกว่าแผนภูมิต้นไม้ตัดสินใจ เมื่อเทียบกับต้นไม้ตัดสินใจ ป่าสุ่มต้องใช้เวลาในการฝึกอบรมมากขึ้น อย่างไรก็ตาม เมื่อต้องรับมือกับชุดข้อมูลขนาดใหญ่ จะนิยมใช้ฟอเรสต์แบบสุ่ม การใส่มากเกินไปเป็นเรื่องปกติในแผนภูมิการตัดสินใจ มีแนวโน้มว่าจะใส่มากเกินไปในป่าสุ่มเนื่องจากใช้ต้นไม้จำนวนมาก
