Random forests

Supervised Learning ใน R: การถดถอย

Nina Zumel and John Mount

Win-Vector, LCC

Random Forests

นำ decision tree หลายต้นที่หลากหลายมาเฉลี่ยรวมกัน

  • ลด overfit
  • เพิ่มความสามารถในการแสดงออกของโมเดล
  • การทำนายที่ละเอียดขึ้น
Supervised Learning ใน R: การถดถอย

การสร้างโมเดล Random Forest

  1. สุ่มตัวอย่าง (bootstrapped sample) จากข้อมูล training
  2. สร้าง tree สำหรับแต่ละตัวอย่าง
    • ที่แต่ละ node เลือกตัวแปรที่ดีที่สุดสำหรับแบ่ง (จากกลุ่มย่อยสุ่มของตัวแปรทั้งหมด)
    • ดำเนินต่อจนกว่า tree จะสร้างเสร็จ
  3. ในการให้คะแนนข้อมูล ให้ประเมินด้วย tree ทั้งหมดแล้วเฉลี่ยผลลัพธ์
Supervised Learning ใน R: การถดถอย

ตัวอย่าง: ข้อมูลการเช่าจักรยาน

cnt ~ hr + holiday + workingday + 
  weathersit + temp + atemp + hum + windspeed

Supervised Learning ใน R: การถดถอย

Random Forests ด้วย ranger()

model <- ranger(fmla, bikesJan, 
                num.trees = 500, 
                respect.unordered.factors = "order")
  • formula, data
  • num.trees (ค่าเริ่มต้น 500) - ใช้อย่างน้อย 200
  • mtry - จำนวนตัวแปรที่ลองที่แต่ละ node
    • ค่าเริ่มต้น: รากที่สองของจำนวนตัวแปรทั้งหมด
  • respect.unordered.factors - แนะนำให้ตั้งค่าเป็น "order"
    • การ hashing ตัวแปรจัดกลุ่มแบบ "safe"
Supervised Learning ใน R: การถดถอย

Random Forests ด้วย ranger()

model
Ranger result
...
OOB prediction error (MSE):       3103.623 
R squared (OOB):                  0.7837386

อัลกอริทึม random forest คืนค่าประมาณประสิทธิภาพ out-of-sample

Supervised Learning ใน R: การถดถอย

การทำนายด้วยโมเดล ranger()

bikesFeb$pred <- predict(model, bikesFeb)$predictions

อินพุตของ predict():

  • model
  • data

เข้าถึงค่าทำนายได้จาก element predictions

Supervised Learning ใน R: การถดถอย

ประเมินโมเดล

คำนวณ RMSE:

bikesFeb %>% 
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2)))
      rmse
1 67.15169
โมเดล RMSE
Quasipoisson 69.3
Random forests 67.15
Supervised Learning ใน R: การถดถอย

ประเมินโมเดล

Supervised Learning ใน R: การถดถอย

ประเมินโมเดล

Supervised Learning ใน R: การถดถอย

มาฝึกกันเถอะ!

Supervised Learning ใน R: การถดถอย

Preparing Video For Download...