สร้างโมเดล Random Forest สำหรับการเช่าจักรยาน
ในแบบฝึกหัดนี้ เราจะสร้างโมเดลเพื่อพยากรณ์จำนวนจักรยานที่ถูกเช่าในแต่ละชั่วโมง โดยอิงจากสภาพอากาศ ประเภทของวัน (วันหยุด วันทำงาน หรือวันสุดสัปดาห์) และช่วงเวลาของวัน โมเดลนี้จะฝึกด้วยข้อมูลจากเดือนกรกฎาคม
เราจะใช้แพ็กเกจ ranger ในการ Fit โมเดล Random Forest โดย Arguments หลักของการเรียก ranger() (docs) มีดังนี้
formuladatanum.trees: จำนวนต้นไม้ใน Forestrespect.unordered.factors: กำหนดวิธีจัดการตัวแปร Factor ที่ไม่มีลำดับ แนะนำให้ตั้งค่าเป็น "order" สำหรับ Regressionseed: เนื่องจากเป็นอัลกอริทึมแบบสุ่ม จึงต้องกำหนด 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 เป็นเท่าใด
- Argument แรกของ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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 = ___))