หน่วยนี้จะกล่าวถึงหัวข้อต่อไปนี้
- การตีความ Random Forest
- การฝึก Random Forest
- ข้อดีและข้อเสียของ Random Forest
การตีความ Random Forest
การตีความแบบ Random Forest มีความซับซ้อนกว่า Decision Tree ป่าแบบสุ่มประกอบด้วยต้นไม้การตัดสินใจที่ได้รับการฝึกด้วยสัญญาณรบกวนแบบสุ่ม ดังนั้น การประเมินโครงสร้างแผนภูมิการตัดสินใจจึงทำได้ยากขึ้น อย่างไรก็ตาม เราสามารถตีความโมเดล Random Forest ได้ 2 วิธี
วิธีหนึ่งในการตีความ Random Forest คือการฝึกและตีความต้นไม้การตัดสินใจด้วยอัลกอริทึม CART เนื่องจากทั้ง Random Forest และ CART ได้รับการฝึกด้วยอัลกอริทึมหลักเดียวกัน จึง "ใช้มุมมองแบบรวมเดียวกัน" กับชุดข้อมูล ตัวเลือกนี้เหมาะกับชุดข้อมูลที่ไม่ซับซ้อนและช่วยให้เข้าใจการตีความโดยรวมของโมเดล
ความสำคัญของตัวแปรเป็นอีกแนวทางที่ตีความได้ ตัวอย่างเช่น ตารางต่อไปนี้จัดอันดับความสำคัญของตัวแปรของฟีเจอร์ต่างๆ สําหรับโมเดล Random Forest ที่ผ่านการฝึกอบรมในชุดข้อมูลการสำรวจประชากร (หรือที่เรียกว่า Adult)
ตารางที่ 8 ความสำคัญของตัวแปรของฟีเจอร์ต่างๆ 14 รายการ
ฟีเจอร์ | คะแนนรวม | ค่าเฉลี่ยของความแม่นยำที่ลดลง | ค่ามัธยฐานที่ลดลงของ AUC | ค่าเฉลี่ยความลึกขั้นต่ำ | จำนวนโหนด | ค่ามัธยฐานที่ลดลงของ PR-AUC | Num เป็นรูท |
---|---|---|---|---|---|---|---|
ความสัมพันธ์ | 4203592.6 |
0.0045 |
0.0172 |
4.970 |
57040 |
0.0093 |
1095 |
capital_gain | 3363045.1 |
0.0199 |
0.0194 |
2.852 |
56468 |
0.0655 |
457 |
marital_status | 3128996.3 |
0.0018 |
0.0230 |
6.633 |
52391 |
0.0107 |
750 |
อายุ | 2520658.8 |
0.0065 |
0.0074 |
4.969 |
356784 |
0.0033 |
200 |
การศึกษา | 2015905.4 |
0.0018 |
-0.0080 |
5.266 |
115751 |
-0.0129 |
205 |
อาชีพ | 1939409.3 |
0.0063 |
-0.0040 |
5.017 |
221935 |
-0.0060 |
62 |
education_num | 1673648.4 |
0.0023 |
-0.0066 |
6.009 |
58303 |
-0.0080 |
197 |
fnlwgt | 1564189.0 |
-0.0002 |
-0.0038 |
9.969 |
431987 |
-0.0049 |
0 |
hours_per_week | 1333976.3 |
0.0030 |
0.0007 |
6.393 |
206526 |
-0.0031 |
20 |
capital_loss | 866863.8 |
0.0060 |
0.0020 |
8.076 |
58531 |
0.0118 |
1 |
workclass | 644208.4 |
0.0025 |
-0.0019 |
9.898 |
132196 |
-0.0023 |
0 |
native_country | 538841.2 |
0.0001 |
-0.0016 |
9.434 |
67211 |
-0.0058 |
0 |
เพศ | 226049.3 |
0.0002 |
0.0002 |
10.911 |
37754 |
-0.0011 |
13 |
เชื้อชาติ | 168180.9 |
-0.0006 |
-0.0004 |
11.571 |
42262 |
-0.0031 |
0 |
ดังที่คุณเห็น ความสําคัญของตัวแปรที่กําหนดไว้แตกต่างกันจะมีรูปแบบที่แตกต่างกัน และอาจทําให้การจัดอันดับฟีเจอร์แตกต่างกัน
ความสําคัญของตัวแปรที่มาจากโครงสร้างโมเดล (เช่น คะแนนรวม ความลึกขั้นต่ำเฉลี่ย จํานวนโหนด และจํานวนที่เป็นรูทในตารางด้านบน) จะคํานวณในลักษณะเดียวกันสําหรับต้นไม้การตัดสินใจ (ดูส่วน "รถเข็น | ความสําคัญของตัวแปร") และป่าแบบสุ่ม
ความสำคัญของตัวแปรการสับเปลี่ยน (เช่น การลดลงของค่าเฉลี่ยใน {accuracy, auc, pr-auc} ในตารางด้านบน) คือการวัดผลที่ไม่ขึ้นอยู่กับโมเดลซึ่งสามารถคํานวณในโมเดลแมชชีนเลิร์นนิงใดก็ได้ที่มีชุดข้อมูลที่ใช้ตรวจสอบ อย่างไรก็ตาม เมื่อใช้ Random Forest คุณจะคํานวณความสําคัญของตัวแปรด้วยการสุ่มตัวอย่างแทนการใช้ชุดข้อมูลที่ใช้ตรวจสอบได้
SHAP (SHapley Additive exPlanations) เป็นวิธีการที่ไม่ขึ้นอยู่กับโมเดลเพื่ออธิบายการคาดการณ์แต่ละรายการหรือการตีความตามโมเดล (ดูข้อมูลเบื้องต้นเกี่ยวกับการตีความที่ไม่ขึ้นอยู่กับโมเดลได้จากหนังสือ Interpretable Machine Learning ของ Molnar) โดยทั่วไป SHAP จะใช้เวลาในการคํานวณนาน แต่สามารถเพิ่มความเร็วได้อย่างมากสําหรับป่าการตัดสินใจ จึงเหมาะสําหรับตีความป่าการตัดสินใจ
ตัวอย่างการใช้งาน
ในบทเรียนก่อนหน้านี้ เราได้ฝึกต้นไม้การตัดสินใจ CART ในชุดข้อมูลขนาดเล็กโดยเรียกใช้ tfdf.keras.CartModel
หากต้องการฝึกโมเดล Random Forest ให้แทนที่ tfdf.keras.CartModel
ด้วย tfdf.keras.RandomForestModel
ดังนี้
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
ข้อดีและข้อเสีย
ส่วนนี้มีข้อมูลสรุปสั้นๆ เกี่ยวกับข้อดีและข้อเสียของ Random Forest
ข้อดี:
- เช่นเดียวกับต้นไม้การตัดสินใจ ป่าแบบสุ่มรองรับฟีเจอร์ตัวเลขและหมวดหมู่แบบเนทีฟ และมักไม่จําเป็นต้องประมวลผลฟีเจอร์ล่วงหน้า
- เนื่องจากต้นไม้การตัดสินใจเป็นอิสระ จึงฝึกฝนป่าแบบสุ่มได้แบบขนานกัน คุณจึงฝึก Random Forest ได้อย่างรวดเร็ว
- ป่าแบบสุ่มมีพารามิเตอร์เริ่มต้นที่ให้ผลลัพธ์ที่ยอดเยี่ยมได้บ่อยครั้ง การปรับแต่งพารามิเตอร์เหล่านี้มักไม่ค่อยส่งผลต่อโมเดล
ข้อเสีย:
- เนื่องจากไม่มีการตัด Decision Tree จึงอาจมีขนาดใหญ่ โมเดลที่มีโหนดมากกว่า 1 ล้านโหนดเป็นเรื่องปกติ บางครั้งขนาด (และความเร็วในการอนุมาน) ของ Random Forest อาจทำให้เกิดปัญหา
- ป่าแบบสุ่มไม่สามารถเรียนรู้และนําการนําเสนอภายในมาใช้ซ้ำได้ ต้นไม้การตัดสินใจแต่ละต้น (และแต่ละสาขาของต้นไม้การตัดสินใจแต่ละต้น) ต้องเรียนรู้รูปแบบชุดข้อมูลอีกครั้ง ในชุดข้อมูลบางชุด โดยเฉพาะชุดข้อมูลที่ไม่ใช่ตาราง (เช่น รูปภาพ ข้อความ) วิธีการนี้ทําให้ Random Forest ให้ผลลัพธ์แย่กว่าวิธีการอื่นๆ