Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Random Forests (ป่าสุ่ม) คืออะไร?


Random Forest (ป่าสุ่ม) เป็นคลาสของ ensemble approaches (วิธีการรวมแบบกลุ่ม) ที่ออกแบบมาโดยเฉพาะสำหรับ Decision Tree Classifiers มันรวมการทำนาย (predictions) ที่ทำโดย Decision Trees หลายต้น โดยแต่ละต้นสร้างขึ้นจากค่าของชุดเวกเตอร์สุ่ม (random vectors) ที่แยกจากกัน

เวกเตอร์สุ่มถูกสร้างจาก probability distribution แบบคงที่ (constant probability distribution) ไม่เหมือน adaptive methods ใน AdaBoost ที่ probability distribution เปลี่ยนแปลงเพื่อเป้าหมาย instances ที่ยากต่อการจัดประเภท

Bagging (Bootstrap Aggregating) ที่ใช้ Decision Trees เป็นกรณีพิเศษของ Random Forests ที่ความสุ่ม (randomness) ถูกนำเข้าในกระบวนการสร้างโมเดลโดยการสุ่มเลือก N ตัวอย่าง with replacement จาก training set เริ่มต้น Bagging ยังใช้ uniform probability distribution เหมือนกันในการสร้าง bootstrap samples ตลอดกระบวนการสร้างโมเดล

แต่ละ Decision Tree ต้องการเวกเตอร์สุ่มที่สร้างจาก probability distribution แบบคงที่ เวกเตอร์สุ่มสามารถนำเข้าไปในกระบวนการเจริญเติบโตของต้นไม้ได้หลายวิธี วิธีแรกคือสุ่มเลือก F input features เพื่อแยก (split) ที่แต่ละโหนดของ Decision Tree

ผลคือ แทนที่จะตรวจสอบ features ทั้งหมดที่มีอยู่ การตัดสินใจแยกโหนดจะมาจาก features ที่เลือกเท่านั้น ต้นไม้จะเจริญเติบโตจนเต็มที่โดยไม่มีการ pruning (ตัดแต่ง) สิ่งนี้ช่วยลด bias (ความเอียง) ในต้นไม้ที่ได้

เมื่อสร้างต้นไม้เสร็จแล้ว การทำนายจะถูกรวมกันโดยใช้ majority voting scheme วิธีนี้เรียกว่า Forest-RI (RI = Random Input selection) เพื่อเพิ่มความสุ่ม สามารถใช้ bagging สร้าง bootstrap samples สำหรับ Forest-RI ได้

ความทนทาน (robustness) และความสัมพันธ์ (correlation) ของ Random Forests ขึ้นอยู่กับขนาดของ F หาก F เล็กพอ โอกาสที่ต้นไม้จะสัมพันธ์กันน้อยลง กล่าวคือ ความแข็งแกร่งของ tree classifier จะเพิ่มขึ้นเมื่อจำนวน features (F) มากขึ้น

ถ้าจำนวน features ต้นฉบับ (d) น้อยเกินไป จะยากที่จะเลือกชุด random features แยกกันเพื่อสร้าง Decision Trees วิธีหนึ่งเพิ่ม feature space คือ สร้าง linear combinations ของ input features โดยเฉพาะที่แต่ละโหนด สร้าง feature ใหม่โดยสุ่มเลือก L input features Input features ถูกเชื่อมโยงเชิงเส้นด้วย coefficients ที่สุ่มจาก uniform distribution ในช่วง [-1, 1] ที่แต่ละโหนด สร้าง F features ที่รวมกันแบบสุ่มใหม่ และเลือกตัวที่ดีที่สุดมา split โหนด วิธีนี้เรียกว่า Forest-RC