शुरू करेंमुफ़्त में शुरू करें

xgboost बाइक रेंटल मॉडल फिट करें और प्रेडिक्ट करें

इस अभ्यास में, आप xgboost() का उपयोग करके एक gradient boosting मॉडल फिट करेंगे ताकि मौसम, प्रकार और दिन के समय के आधार पर प्रति घंटे किराए पर ली गई बाइकों की संख्या प्रेडिक्ट की जा सके। आप जुलाई महीने के डेटा पर मॉडल ट्रेन करेंगे और अगस्त महीने के डेटा पर प्रेडिक्ट करेंगे।

डेटा फ्रेम bikesJuly, bikesJuly.treat, bikesAugust, और bikesAugust.treat पहले से लोड हैं। ध्यान रखें कि vtreat-किए गए डेटा में अब outcome कॉलम नहीं होता, इसलिए आपको इसे ओरिजिनल डेटा से लेना होगा (cnt कॉलम)।

सुविधा के लिए, पिछले अभ्यास से उपयोग किए जाने वाले पेड़ों की संख्या ntrees उपलब्ध है।

xgboost() (docs) के आर्ग्युमेंट xgb.cv() के समान हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में Supervised Learning: Regression

पाठ्यक्रम देखें

अभ्यास निर्देश

  • खाली जगहें भरकर जुलाई के डेटा पर xgboost() चलाएँ।
    • as.matrix() का उपयोग करके vtreated data frame को matrix में बदलें।
    • objective "reg:squarederror" होना चाहिए।
    • ntrees राउंड्स का उपयोग करें।
    • eta को 0.75, max_depth को 5, और verbose को FALSE (silent) सेट करें।
  • अब bikesAugust.treat पर predict() कॉल करें ताकि अगस्त में किराए पर ली गई बाइकों की संख्या प्रेडिक्ट हो सके।
    • as.matrix() का उपयोग करके vtreat-किए गए टेस्ट डेटा को matrix में बदलें।
    • प्रेडिक्शंस को bikesAugust में pred नाम के कॉलम के रूप में जोड़ें।
  • वास्तविक बाइक रेंटल काउंट्स बनाम प्रेडिक्शंस को प्लॉट करने के लिए खाली जगहें भरें (x-axis पर प्रेडिक्शंस हों)।
    • क्या आपको प्रेडिक्शंस में कोई संभावित समस्या दिख रही है?

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# 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()
कोड संपादित करें और चलाएँ