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

ฝึกโมเดล xgboost สำหรับการเช่าจักรยานและพยากรณ์ผล

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

ข้อมูล data frame ได้แก่ bikesJuly, bikesJuly.treat, bikesAugust และ bikesAugust.treat ถูกโหลดไว้แล้ว โปรดจำไว้ว่าข้อมูลที่ผ่าน vtreat จะไม่มีคอลัมน์ outcome อีกต่อไป ดังนั้นต้องดึงค่านั้นจากข้อมูลต้นฉบับ (คอลัมน์ cnt)

เพื่อความสะดวก ค่าจำนวนต้นไม้ ntrees จากแบบฝึกหัดก่อนหน้าพร้อมใช้งานแล้ว

อาร์กิวเมนต์ของ xgboost() (docs) มีลักษณะคล้ายกับของ xgb.cv()

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

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

ดูคอร์ส

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

  • เติมช่องว่างเพื่อรัน xgboost() กับข้อมูลเดือนกรกฎาคม
    • ใช้ as.matrix() เพื่อแปลง data frame ที่ผ่าน vtreat ให้เป็น matrix
    • objective ควรเป็น "reg:squarederror"
    • ใช้ ntrees rounds
    • ตั้งค่า eta เป็น 0.75, max_depth เป็น 5 และ verbose เป็น FALSE (ปิดการแสดงผล)
  • เรียกใช้ predict() กับ bikesAugust.treat เพื่อพยากรณ์จำนวนจักรยานที่เช่าในเดือนสิงหาคม
    • ใช้ as.matrix() เพื่อแปลงข้อมูล test ที่ผ่าน vtreat ให้เป็น matrix
    • เพิ่มผลการพยากรณ์ลงใน bikesAugust เป็นคอลัมน์ pred
  • เติมช่องว่างเพื่อพล็อตกราฟเปรียบเทียบจำนวนการเช่าจักรยานจริงกับค่าพยากรณ์ (โดยให้ค่าพยากรณ์อยู่บนแกน x)
    • มีปัญหาที่อาจเกิดขึ้นกับค่าพยากรณ์หรือไม่?

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

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

# Run xgboost
bike_model_xgb <- xgboost(data = ___, # training data as matrix
                   label = ___,  # column of outcomes
                   nrounds = ___,       # number of trees to build
                   objective = ___, # objective
                   eta = ___,
                   max_depth = ___,
                   verbose = FALSE  # silent
)

# Make predictions
bikesAugust$pred <- ___(___, ___(___))

# Plot predictions (on x axis) vs actual bike rental count
ggplot(bikesAugust, aes(x = ___, y = ___)) + 
  geom_point() + 
  geom_abline()
แก้ไขและรันโค้ด