ป่าแบบสุ่ม

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 ทั้งหมด

รหัส YDF
คุณเปิดใช้การฝึกทำงานได้โดยไม่ต้องแทนที่ด้วยงานต่อไปนี้ใน YDF: bootstrap_training_dataset=False

การสุ่มตัวอย่างแอตทริบิวต์

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

แผนผังการตัดสินใจต่อไปนี้แสดงการสุ่มตัวอย่างแอตทริบิวต์ / ฟีเจอร์ แผนผังการตัดสินใจมีการฝึก ในฟีเจอร์ 5 รายการ (f1-f5) โหนดสีน้ำเงินแสดงถึงฟีเจอร์ ที่ทดสอบแล้วในขณะที่ฟีเจอร์สีขาวไม่ได้รับการทดสอบ เงื่อนไขนี้สร้างขึ้นจากฟีเจอร์ที่ดีที่สุดที่ทดสอบแล้ว (แสดงด้วยเส้นขอบสีแดง)

3 โหนด โดยทั้งหมดแสดง 5 ฟีเจอร์ โหนดรูทและโหนดย่อย 1 โหนดจะทดสอบฟีเจอร์ 3 ตัวจาก 5 อย่าง โหนดย่อยอีกโหนด
จะทดสอบฟีเจอร์ 2 รายการจากทั้งหมด 5 รายการ

รูปที่ 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 ชิ้น

คุณปรับแต่งไฮเปอร์พารามิเตอร์เหล่านี้ได้

รหัส YDF
ตัวรับสัญญาณของ YDF เป็นวิธีง่ายๆ ในการปรับไฮเปอร์พารามิเตอร์ ดูรายละเอียดเพิ่มเติมได้ที่บทแนะนำการปรับแต่งเสียงของ YDF

ความชัดเจนของนอยส์

ทำไมเสียงแบบสุ่มจึงปรับปรุงคุณภาพของป่าแบบสุ่ม ภาพ 22 จะแสดงการคาดคะเนของแผนผังการตัดสินใจ (ตัดแต่ง) แบบดั้งเดิมและป่าแบบสุ่มที่ฝึกจากตัวอย่าง 2-3 ข้อของโจทย์ง่ายๆ สองมิติที่มีรูปแบบวงรี

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

ภาพ 3 ภาพ ภาพแรกสุดที่ชื่อ Ground Truth เป็นวงรีที่สมบูรณ์แบบ ภาพที่ 2 ที่มีป้ายกำกับว่าแผนผังการตัดสินใจที่ตัดแล้ว
อยู่ระหว่างวงรีกับสี่เหลี่ยมผืนผ้า ภาพที่ 3 ชื่อ "ป่าแบบสุ่ม" ที่ติดป้ายกำกับนั้นไม่ใช่วงรี แต่อยู่ใกล้วงรีมากกว่าภาพที่มีป้ายกำกับว่าต้นไม้ที่ตัดออก

รูปที่ 22 ข้อมูลจากการสังเกตการณ์โดยตรงกับการคาดการณ์ที่สร้างขึ้นจากแผนผังการตัดสินใจที่ตัดออกเพียงเส้นเดียวและการคาดการณ์ที่สร้างขึ้นจากป่าแบบสุ่ม

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

  • การเก็บกระเป๋า
  • การสุ่มตัวอย่างแอตทริบิวต์
  • การปิดใช้การตัดแต่ง

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

จุดไข่ปลา 3 จุดมีเสียงดังมาก

รูปที่ 23 แผนผังการตัดสินใจที่ไม่มีการตัดแต่งกิ่ง 3 ต้นไม้ซึ่งจะสร้างชุดองค์ประกอบที่มีประสิทธิภาพ

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

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

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

พล็อตความถูกต้องแม่นยำเทียบกับจำนวนแผนผังการตัดสินใจที่อธิบายไว้ในย่อหน้าก่อน

รูปที่ 24 ความแม่นยำจะคงที่เมื่อมีการเพิ่มแผนผังการตัดสินใจในฟอเรสต์แบบสุ่มมากขึ้น