ป่าแบบสุ่ม
random Forest (RF) คือชุดต้นไม้ประกอบการตัดสินใจที่ต้นไม้การตัดสินใจแต่ละต้นได้รับการฝึกด้วยเสียงแบบสุ่มที่เจาะจง ป่าแบบสุ่มเป็น รูปแบบต้นไม้ในการตัดสินใจที่ได้รับความนิยมสูงสุด บทนี้จะกล่าวถึงเทคนิคหลายประการในการสร้างแผนผังการตัดสินใจอิสระเพื่อปรับปรุงโอกาสในการสร้างป่าแบบสุ่มที่มีประสิทธิภาพ
แบบถุง
Bagging (bootstrap aggregating) หมายถึงการฝึกแต่ละรายการเพื่อตัดสินใจบนชุดย่อยของตัวอย่างแบบสุ่มในชุดการฝึก กล่าวคือ แผนผังการตัดสินใจแต่ละรายการในฟอเรสต์แบบสุ่มจะได้รับการฝึกจากตัวอย่างชุดย่อยที่ต่างกัน
การเก็บกระเป๋าเป็นเรื่องแปลกประหลาด แผนผังการตัดสินใจแต่ละรายการจะได้รับการฝึกตามจำนวนตัวอย่างเดียวกันกับในชุดการฝึกเดิม เช่น หากชุดการฝึกเดิมมีตัวอย่าง 60 รายการ แผนผังการตัดสินใจแต่ละรายการจะได้รับการฝึกจากตัวอย่าง 60 รายการ อย่างไรก็ตาม การจัดกระเป๋าจะฝึกแผนผังการตัดสินใจแต่ละรายการตามส่วนย่อย (โดยทั่วไปคือ 67%) ของตัวอย่างเหล่านั้นเท่านั้น ดังนั้นตัวอย่าง 40 รายการในชุดย่อยต้องมีการใช้ซ้ำขณะฝึกโครงสร้างการตัดสินใจหนึ่งๆ การใช้ซ้ำนี้เรียกว่าการฝึก "ด้วยการแทนที่"
ตัวอย่างเช่น ตารางที่ 6 แสดงให้เห็นว่าการจัดกระเป๋าอาจกระจายตัวอย่าง 6 รายการในแผนผังการตัดสินใจ 3 แบบ โปรดสังเกตสิ่งต่อไปนี้
- แผนผังการตัดสินใจแต่ละรายการจะฝึกตามจำนวนตัวอย่างทั้งหมด 6 ตัวอย่าง
- แผนผังการตัดสินใจแต่ละรายการจะฝึกโดยใช้ชุดตัวอย่างที่ต่างกัน
- แผนผังการตัดสินใจแต่ละรายการจะนำบางตัวอย่างมาใช้ซ้ำ เช่น ตัวอย่างที่ 4 มีการใช้ 2 ครั้งในแผนผังการตัดสินใจฝึก 1 ดังนั้นน้ำหนักที่ได้เรียนรู้ของตัวอย่าง #4 จะเป็น 2 เท่าอย่างมีประสิทธิภาพในแผนผังการตัดสินใจ 1
ตารางที่ 6. เก็บตัวอย่างการฝึก 6 ตัวอย่างในแผนผังการตัดสินใจ 3 ต้น ตัวเลขแต่ละรายการแสดงจำนวนครั้งที่มีการใช้ตัวอย่างการฝึกหนึ่งๆ (#1-6) ในชุดข้อมูลการฝึกของแผนผังการตัดสินใจหนึ่งๆ (1-3)
ตัวอย่างการฝึก | ||||||
---|---|---|---|---|---|---|
#1 | #2 | #3 | #4 | #5 | #6 | |
ชุดข้อมูลต้นฉบับ | 1 | 1 | 1 | 1 | 1 | 1 |
แผนผังการตัดสินใจ 1 | 1 | 1 | 0 | 2 | 1 | 1 |
แผนผังการตัดสินใจ 2 | 3 | 0 | 1 | 0 | 2 | 0 |
แผนผังการตัดสินใจ 3 | 0 | 1 | 3 | 1 | 0 | 1 |
ในการจัดกระเป๋า แผนผังการตัดสินใจแต่ละรายการจะได้รับการฝึกจากจำนวนตัวอย่างทั้งหมดในชุดการฝึกเดิมเกือบทุกครั้ง การฝึกโครงสร้างการตัดสินใจแต่ละรายการโดยใช้ตัวอย่างที่มากขึ้นหรือตัวอย่างจำนวนน้อยลงมีแนวโน้มจะทำให้คุณภาพของฟอเรสต์แบบสุ่มลดลง
แม้ว่าจะไม่มีในรายงานต้นฉบับแบบสุ่มของฟอเรสต์ แต่บางครั้งการสุ่มตัวอย่างก็จะทำแบบ "ไม่มีการแทนที่" กล่าวคือ ตัวอย่างการฝึกแสดงในชุดการฝึกแผนผังการตัดสินใจได้ไม่เกิน 1 ครั้ง ตัวอย่างเช่น ในตารางก่อนหน้านี้ ค่าทั้งหมดจะเป็น 0 หรือ 1 ทั้งหมด
bootstrap_training_dataset=False
การสุ่มตัวอย่างแอตทริบิวต์
การสุ่มตัวอย่างแอตทริบิวต์หมายความว่าแทนที่จะมองหาเงื่อนไขที่ดีที่สุดสำหรับฟีเจอร์ที่มีอยู่ทั้งหมด ระบบจะทดสอบเฉพาะชุดย่อยของฟีเจอร์แบบสุ่มต่อแต่ละโหนด ชุดฟีเจอร์ที่ทดสอบจะได้รับการสุ่มตัวอย่างแบบสุ่มที่แต่ละโหนดของแผนผังการตัดสินใจ
แผนผังการตัดสินใจต่อไปนี้แสดงการสุ่มตัวอย่างแอตทริบิวต์ / ฟีเจอร์ แผนผังการตัดสินใจมีการฝึก ในฟีเจอร์ 5 รายการ (f1-f5) โหนดสีน้ำเงินแสดงถึงฟีเจอร์ ที่ทดสอบแล้วในขณะที่ฟีเจอร์สีขาวไม่ได้รับการทดสอบ เงื่อนไขนี้สร้างขึ้นจากฟีเจอร์ที่ดีที่สุดที่ทดสอบแล้ว (แสดงด้วยเส้นขอบสีแดง)
รูปที่ 21 การสุ่มตัวอย่างแอตทริบิวต์
อัตราส่วนของการสุ่มตัวอย่างแอตทริบิวต์เป็นไฮเปอร์พารามิเตอร์การทำให้เป็นมาตรฐานที่สำคัญ ภาพก่อนหน้าใช้อัตราส่วน ~3⁄5 การทดสอบการใช้ฟอเรสต์แบบสุ่มหลายรายการจะทดสอบ โดยค่าเริ่มต้น ซึ่งก็คือ 1/3 ของฟีเจอร์สำหรับการถดถอยและ sqrt(จำนวนฟีเจอร์) สำหรับการแยกประเภท
ใน TF-DF ไฮเปอร์พารามิเตอร์ต่อไปนี้ควบคุมการสุ่มตัวอย่างแอตทริบิวต์
num_candidate_attributes
num_candidate_attributes_ratio
เช่น หากเป็น num_candidate_attributes_ratio=0.5
ระบบจะทดสอบฟีเจอร์ครึ่งหนึ่งในแต่ละโหนด
การปิดใช้การกำหนดแผนผังการตัดสินใจ
ต้นไม้การตัดสินใจแต่ละตัวในฟอเรสต์แบบสุ่มจะได้รับการฝึกโดยไม่ต้องตัดแต่งกิ่งไม้ (ดูการปรับให้พอดีและการตัดแต่งกิ่งสูง) วิธีนี้สร้างต้นไม้ที่ซับซ้อนเกินไป และมีคุณภาพในการคาดการณ์ไม่ดี แทนที่จะทำให้ต้นไม้แต่ละต้นประกอบกันเป็นรูปธรรม เราจะรวมต้นไม้เข้าด้วยกันเพื่อให้การคาดการณ์โดยรวมแม่นยำขึ้น
เราexpectว่าการฝึกและการทดสอบความแม่นยำของฟอเรสต์แบบสุ่มจะแตกต่างออกไป โดยทั่วไปแล้ว ความแม่นยำในการฝึกของฟอเรสต์แบบสุ่มจะสูงขึ้นมาก (บางครั้งก็เท่ากับ 100%) อย่างไรก็ตาม ความแม่นยําในการฝึกที่สูงมากในฟอเรสต์แบบสุ่มนั้นปกติ และไม่ได้บ่งบอกว่ามีการปรับแต่งฟอเรสต์แบบสุ่ม
การสุ่มสองแหล่ง (การระบุแหล่งที่มาและการสุ่มตัวอย่างแอตทริบิวต์) ช่วยให้มั่นใจได้ว่าต้นไม้การตัดสินใจเป็นอิสระจากกัน ความเป็นอิสระนี้ จะแก้ไขการกำหนดหลักการตัดสินใจของแต่ละคนได้ ทำให้ชุดประกอบไม่เรียบร้อยเกินไป เราจะแสดงผลกระทบที่ไม่เป็นธรรมชาตินี้ในหน่วยโฆษณาถัดไป
ป่าแบบสุ่มบริสุทธิ์จะฝึกโดยไม่มีความลึกสูงสุดหรือจำนวนสังเกตการณ์ขั้นต่ำต่อใบไม้ ในทางปฏิบัติแล้ว การจำกัดความลึกสูงสุดและจำนวนครั้งต่ำสุดในการสังเกตต่อใบไม้จะเป็นประโยชน์ โดยค่าเริ่มต้น ฟอเรสต์แบบสุ่มจำนวนมากจะใช้ค่าเริ่มต้นต่อไปนี้
- ความลึกสูงสุด ~16
- จำนวนขั้นต่ำในการสังเกตการณ์ต่อใบไม้ประมาณ 5 ชิ้น
คุณปรับแต่งไฮเปอร์พารามิเตอร์เหล่านี้ได้
ความชัดเจนของนอยส์
ทำไมเสียงแบบสุ่มจึงปรับปรุงคุณภาพของป่าแบบสุ่ม ภาพ 22 จะแสดงการคาดคะเนของแผนผังการตัดสินใจ (ตัดแต่ง) แบบดั้งเดิมและป่าแบบสุ่มที่ฝึกจากตัวอย่าง 2-3 ข้อของโจทย์ง่ายๆ สองมิติที่มีรูปแบบวงรี
เป็นที่รู้กันว่ารูปแบบจุดไข่ปลาไม่ใช่เรื่องง่ายสำหรับแผนผังการตัดสินใจและอัลกอริทึมของป่าตัดสินใจที่จะเรียนรู้ด้วยเงื่อนไขที่จัดวางแกน จึงเป็นตัวอย่างที่ดี โปรดสังเกตว่าแผนผังการตัดสินใจที่ถูกตัดออกไม่สามารถได้คุณภาพในการคาดการณ์เท่าๆ กับป่าแบบสุ่ม
รูปที่ 22 ข้อมูลจากการสังเกตการณ์โดยตรงกับการคาดการณ์ที่สร้างขึ้นจากแผนผังการตัดสินใจที่ตัดออกเพียงเส้นเดียวและการคาดการณ์ที่สร้างขึ้นจากป่าแบบสุ่ม
พล็อตถัดไปจะแสดงการคาดการณ์ของต้นไม้การตัดสินใจ 3 ต้นแรกที่ไม่มีการตัดแต่งกิ่ง ของป่าแบบสุ่ม กล่าวคือ ต้นไม้ตัดสินใจทั้งหมดได้รับการฝึกด้วยชุดค่าผสมของ
- การเก็บกระเป๋า
- การสุ่มตัวอย่างแอตทริบิวต์
- การปิดใช้การตัดแต่ง
โปรดสังเกตว่าการคาดคะเนแต่ละรายการของแผนผังการตัดสินใจทั้ง 3 ต้นแย่กว่าการคาดคะเนของแผนผังการตัดสินใจที่ถูกตัดออกในตัวเลขก่อนหน้านี้ แต่เนื่องจากข้อผิดพลาดของแผนผังการตัดสินใจแต่ละอันจะสัมพันธ์กันเพียงเล็กน้อย แผนผังการตัดสินใจทั้ง 3 ต้นจะรวมกันเป็นองค์ประกอบเดียวเพื่อสร้างการคาดการณ์ที่มีประสิทธิภาพ
รูปที่ 23 แผนผังการตัดสินใจที่ไม่มีการตัดแต่งกิ่ง 3 ต้นไม้ซึ่งจะสร้างชุดองค์ประกอบที่มีประสิทธิภาพ
เนื่องจากต้นไม้การตัดสินใจของฟอเรสต์แบบสุ่มจะไม่ถูกตัดแต่ง การฝึกป่าแบบสุ่มจึงไม่จำเป็นต้องมีชุดข้อมูลการตรวจสอบ ในทางปฏิบัติ โดยเฉพาะกับชุดข้อมูลขนาดเล็ก โมเดลควรได้รับการฝึกด้วยข้อมูลที่มีอยู่ทั้งหมด
เมื่อฝึกฟอเรสต์แบบสุ่ม เมื่อมีการเพิ่มแผนผังการตัดสินใจมากขึ้น ข้อผิดพลาดมักจะลดลงเสมอ กล่าวคือ คุณภาพของโมเดลจะดีขึ้นเกือบตลอดเวลา ใช่ การเพิ่มแผนผังการตัดสินใจให้มากขึ้นจะลดข้อผิดพลาดของฟอเรสต์แบบสุ่มเกือบทุกครั้ง พูดอีกอย่างก็คือ การเพิ่มแผนผังการตัดสินใจไม่สามารถทำให้ฟอเรสต์แบบสุ่มมีความสมบูรณ์มากเกินไป ในบางครั้งโมเดลจะหยุดการพัฒนา Leo Breiman ได้กล่าวไว้ว่า "Random Forests ไม่ได้โอบรับพื้นที่มากเกินไป เพราะเมื่อมีการเพิ่มต้นไม้เข้ามามากขึ้น"
ตัวอย่างเช่น พล็อตต่อไปนี้แสดงการประเมินการทดสอบของโมเดลฟอเรสต์แบบสุ่มเมื่อมีการเพิ่มแผนผังการตัดสินใจเพิ่มเติม ความแม่นยำดีขึ้นอย่างรวดเร็วจนกระทั่งมีแนวราบประมาณ 0.865 อย่างไรก็ตาม การเพิ่มแผนผังการตัดสินใจเพิ่มเติมไม่ได้ทำให้ความแม่นยำลดลง กล่าวคือโมเดลจะไม่แสดงผลมากเกินไป ลักษณะการทำงานนี้ (ส่วนใหญ่) จะเป็นจริงและไม่เกี่ยวข้องกับไฮเปอร์พารามิเตอร์เสมอ
รูปที่ 24 ความแม่นยำจะคงที่เมื่อมีการเพิ่มแผนผังการตัดสินใจในฟอเรสต์แบบสุ่มมากขึ้น