Bisiklet kiralama tahminlerini görselleştir
Önceki egzersizde, bisiklet modelinin tahminlerini standart "sonuç vs. tahmin" saçılım grafiğiyle görselleştirdin. Bisiklet kiralama verileri bir zaman serisi olduğundan, modelin zamana göre nasıl performans gösterdiğini merak edebilirsin. Bu egzersizde, Ağustos'un ilk 14 günü için saatlik bazda tahminleri ve gerçek kiralamaları karşılaştıracaksın.
Grafiği oluşturmak için tidyr::pivot_longer() (docs) fonksiyonunu kullanarak bikesAugust içindeki tahmin ve gerçek değerleri tek bir sütunda birleştireceksin. pivot_longer() şu argümanları alır:
- Pivotlanacak "geniş" veri çerçevesi (pipe içinde örtük olarak)
- Tek bir sütunda toplanacak sütunların adları ("cols" anahtar sözcüğü).
- Oluşturulacak anahtar sütunun adı - toplanan sütunların adlarını içerir ("names_to" anahtar sözcüğü).
- Oluşturulacak değer sütununun adı - toplanan sütunların değerlerini içerir ("values_to" anahtar sözcüğü).
Pivotlanmış veri çerçevesini, gerçek ve tahmin edilen kiralama sayılarını zamana göre karşılaştırmak için kullanacaksın. Zaman indeksi olan instant, veri toplamanın başlangıcından itibaren gözlem sayısını sayar. Örnek kod, instant değerlerini 0'dan başlayarak günlük birimlere çevirir.
Tahminleri içeren (bikesAugust$pred) bikesAugust veri çerçevesi önceden yüklendi.
Bu egzersiz, kursun bir parçasıdır
R'de Supervised Learning: Regresyon
Egzersiz talimatları
- Boşlukları doldurarak Ağustos'un ilk 14 günü için saatlik bazda tahminleri ve gerçek sayımları çiz.
instant'ı saat yerine gün birimine çevircntvepredsütunlarını, anahtarıvaluetypeolan ve adıvalueolan tek bir sütunapivot_longer()ile topla.- Ağustos'un ilk iki haftası için
filter()uygula value'uinstant'ın (gün) bir fonksiyonu olarak çiz.
Model, bisiklet kiralamalarındaki genel zaman desenlerini yakalıyor mu?
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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")