เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สร้างโมเดล Random Forest สำหรับการเช่าจักรยาน

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

เราจะใช้แพ็กเกจ ranger ในการ Fit โมเดล Random Forest โดย Arguments หลักของการเรียก ranger() (docs) มีดังนี้

  • formula
  • data
  • num.trees: จำนวนต้นไม้ใน Forest
  • respect.unordered.factors: กำหนดวิธีจัดการตัวแปร Factor ที่ไม่มีลำดับ แนะนำให้ตั้งค่าเป็น "order" สำหรับ Regression
  • seed: เนื่องจากเป็นอัลกอริทึมแบบสุ่ม จึงต้องกำหนด Seed เพื่อให้ผลลัพธ์สามารถทำซ้ำได้

เนื่องจากมีตัวแปร Input จำนวนมาก เพื่อความสะดวก เราจะระบุ Outcome และ Input ไว้ในตัวแปร outcome และ vars แล้วใช้ paste() (docs) เพื่อประกอบ String ที่แทน Formula ของโมเดล

Data Frame bikesJuly ถูกโหลดไว้ให้แล้ว โค้ดตัวอย่างระบุชื่อของตัวแปร Outcome และ Input ไว้เรียบร้อยแล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

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

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติมช่องว่างเพื่อสร้าง Formula fmla ที่แสดง cnt เป็นฟังก์ชันของตัวแปร Input จากนั้น Print ออกมา
  • โหลดแพ็กเกจ ranger
  • ใช้ ranger เพื่อ Fit โมเดลกับข้อมูล bikesJuly โดยเก็บผลลัพธ์ไว้ใน bike_model_rf
    • Argument แรกของ ranger() คือ Formula ซึ่งก็คือ fmla
    • ใช้ต้นไม้ 500 ต้น และตั้งค่า respect.unordered.factors = "order"
    • ตั้งค่า Seed เป็น seed เพื่อให้ผลลัพธ์สามารถทำซ้ำได้
    • Print โมเดลออกมา แล้วดูว่าค่า R-squared เป็นเท่าใด

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# bikesJuly is available
str(bikesJuly)

# Random seed to reproduce results
seed

# The outcome column
(outcome <- "cnt")

# The input variables
(vars <- c("hr", "holiday", "workingday", "weathersit", "temp", "atemp", "hum", "windspeed"))

# Create the formula string for bikes rented as a function of the inputs
(fmla <- paste(___, "~", paste(___, collapse = " + ")))

# Load the package ranger
___

# Fit and print the random forest model
(bike_model_rf <- ranger(___, # formula 
                         ___, # data
                         num.trees = ___, 
                         respect.unordered.factors = ___, 
                         seed = ___))
แก้ไขและรันโค้ด