बाइक रेंटल प्रिडिक्शन को विज़ुअलाइज़ करें
पिछले अभ्यास में, आपने स्टैंडर्ड "आउटकम बनाम प्रिडिक्शन" स्कैटर प्लॉट का उपयोग करके बाइक मॉडल की प्रिडिक्शन को विज़ुअलाइज़ किया था। चूँकि बाइक रेंटल डेटा टाइम सीरीज़ डेटा है, आप यह जानने में रुचि रख सकते हैं कि समय के साथ मॉडल कैसा प्रदर्शन करता है। इस अभ्यास में, आप अगस्त के पहले 14 दिनों के लिए, प्रति घंटे के आधार पर प्रिडिक्शन और वास्तविक रेंटल की तुलना करेंगे।
प्लॉट बनाने के लिए आप tidyr::pivot_longer() फंक्शन (docs) का उपयोग करेंगे ताकि bikesAugust से प्रिडिक्टेड और वास्तविक मानों को एक ही कॉलम में समेकित किया जा सके। pivot_longer() के आर्ग्यूमेंट्स होते हैं:
- वह "wide" डेटा फ्रेम जिसे पिवट करना है (पाइप में इम्प्लिसिट)
- उन कॉलमों के नाम जिन्हें एक सिंगल कॉलम में इकट्ठा करना है (कीवर्ड "cols").
- बनाए जाने वाले key कॉलम का नाम - इसमें इकट्ठे किए गए कॉलमों के नाम होते हैं (कीवर्ड "names_to").
- बनाए जाने वाले value कॉलम का नाम - इसमें इकट्ठे किए गए कॉलमों के मान होते हैं (कीवर्ड "values_to").
आप पिवट किए गए डेटा फ्रेम का उपयोग समय के फ़ंक्शन के रूप में वास्तविक और प्रिडिक्टेड रेंटल काउंट्स की तुलना करने के लिए करेंगे। टाइम इंडेक्स instant डेटा कलेक्शन की शुरुआत से अब तक हुए ऑब्ज़र्वेशन्स की संख्या गिनता है। सैंपल कोड इन instants को 0 से शुरू होने वाली दैनिक इकाइयों में बदलता है।
bikesAugust डेटा फ्रेम, जिसमें प्रिडिक्शन (bikesAugust$pred) शामिल हैं, प्री-लोड किया गया है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में Supervised Learning: Regression
अभ्यास निर्देश
- खाली स्थान भरकर अगस्त के पहले 14 दिनों के लिए प्रति घंटे के हिसाब से प्रिडिक्शन और वास्तविक काउंट्स का प्लॉट बनाएँ।
instantको घंटे के बजाय दिनों की इकाइयों में कन्वर्ट करेंcntऔरpredकॉलमों कोpivot_longer()करकेvalueनाम के कॉलम में लाएँ, और key का नामvaluetypeरखें।- अगस्त के पहले दो हफ्तों के लिए
filter()करें valueकोinstant(day) के फ़ंक्शन के रूप में प्लॉट करें।
क्या मॉडल बाइक रेंटल में समय से जुड़ी सामान्य पैटर्न्स को पकड़ रहा है?
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Plot predictions and cnt by date/time
bikesAugust %>%
# set start to 0, convert unit to days
mutate(instant = (instant - min(instant))/24) %>%
# collect cnt and pred into a value column
pivot_longer(cols = c('cnt', 'pred'), names_to = '___', values_to = '___') %>%
filter(instant < 14) %>% # restric to first 14 days
# plot value by instant
ggplot(aes(x = ___, y = ___, color = valuetype, linetype = valuetype)) +
geom_point() +
geom_line() +
scale_x_continuous("Day", breaks = 0:14, labels = 0:14) +
scale_color_brewer(palette = "Dark2") +
ggtitle("Predicted August bike rentals, Quasipoisson model")