ฝึกโมเดลเพื่อพยากรณ์จำนวนการเช่าจักรยาน
ในแบบฝึกหัดนี้ คุณจะสร้างโมเดลเพื่อพยากรณ์จำนวนจักรยานที่ถูกเช่าในแต่ละชั่วโมง โดยใช้สภาพอากาศ ประเภทของวัน (วันหยุดนักขัตฤกษ์ วันทำงาน หรือวันหยุดสุดสัปดาห์) และช่วงเวลาของวันเป็นตัวแปรอิสระ โมเดลจะถูกฝึกด้วยข้อมูลจากเดือนกรกฎาคม
data frame มีคอลัมน์ดังนี้:
cnt: จำนวนจักรยานที่ถูกเช่าในชั่วโมงนั้น (ตัวแปรผลลัพธ์)hr: ชั่วโมงของวัน (0-23 ในรูปแบบ factor)holiday: TRUE/FALSEworkingday: TRUE หากไม่ใช่วันหยุดนักขัตฤกษ์หรือวันหยุดสุดสัปดาห์ มิเช่นนั้นเป็น FALSEweathersit: ข้อมูลเชิงหมวดหมู่ ได้แก่ "Clear to partly cloudy" / "Light Precipitation" / "Misty"temp: อุณหภูมิที่ผ่านการนอร์มอลไลซ์แล้วในหน่วยเซลเซียสatemp: อุณหภูมิที่รู้สึกได้ (feeling temperature) ที่ผ่านการนอร์มอลไลซ์แล้วในหน่วยเซลเซียสhum: ความชื้นที่ผ่านการนอร์มอลไลซ์แล้วwindspeed: ความเร็วลมที่ผ่านการนอร์มอลไลซ์แล้วinstant: ดัชนีเวลา -- จำนวนชั่วโมงนับตั้งแต่เริ่มต้นชุดข้อมูล (ไม่ใช่ตัวแปร)mnthและyr: ดัชนีเดือนและปี (ไม่ใช่ตัวแปร)
อย่าลืมระบุ family = poisson หรือ family = quasipoisson เมื่อใช้ glm() (docs) สำหรับฝึกโมเดลนับจำนวน
เนื่องจากมีตัวแปรอิสระจำนวนมาก เพื่อความสะดวกเราจะกำหนดตัวแปรผลลัพธ์และตัวแปรอิสระไว้ในตัวแปรแยกต่างหาก แล้วใช้ paste() (docs) เพื่อประกอบสตริงที่แทน formula ของโมเดล
data frame bikesJuly พร้อมใช้งานแล้ว และชื่อของตัวแปรผลลัพธ์กับตัวแปรอิสระถูกโหลดไว้ในตัวแปร outcome และ vars ตามลำดับ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning ใน R: การถดถอย
คำแนะนำการฝึกหัด
- เติมช่องว่างเพื่อสร้าง formula
fmlaที่แสดงcntเป็นฟังก์ชันของตัวแปรอิสระ จากนั้นพิมพ์ผลออกมา - คำนวณค่าเฉลี่ย (
mean()) และความแปรปรวน (var()) ของbikesJuly$cnt- ควรใช้ poisson หรือ quasipoisson regression?
- ใช้
glm()เพื่อฝึกโมเดลกับข้อมูลbikesJulyแล้วเก็บผลไว้ในตัวแปรbike_model - ใช้
glance()เพื่อดูสถิติความพอดีของโมเดล และกำหนดผลลัพธ์ของglance()ให้กับตัวแปรperf - คำนวณค่า pseudo-R-squared ของโมเดล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# bikesJuly is available
str(bikesJuly)
# The outcome column
outcome
# The inputs to use
vars
# Create the formula string for bikes rented as a function of the inputs
(fmla <- paste(___, "~", paste(___, collapse = " + ")))
# Calculate the mean and variance of the outcome
(mean_bikes <- ___)
(var_bikes <- ___)
# Fit the model
bike_model <- ___
# Call glance
(perf <- ___)
# Calculate pseudo-R-squared
(pseudoR2 <- ___)