Vizualizace predikcí půjčování kol
V předchozím cvičení jsi vizualizoval/a predikce modelu pro půjčování kol pomocí standardního bodového grafu „skutečné hodnoty vs. predikce". Protože data o půjčování kol jsou časová řada, může tě zajímat, jak si model vede v závislosti na čase. V tomto cvičení porovnáš predikce se skutečnými počty půjčení po hodinách za prvních 14 dní srpna.
Pro vytvoření grafu použiješ funkci tidyr::pivot_longer() (docs), která sloučí predikované i skutečné hodnoty z bikesAugust do jediného sloupce. Funkce pivot_longer() přijímá tyto argumenty:
- „Široký" datový rámec, který má být převeden (implicitní v rouře)
- Názvy sloupců, které mají být sloučeny do jednoho sloupce (klíčové slovo "cols").
- Název klíčového sloupce, který bude vytvořen – obsahuje názvy sloučených sloupců (klíčové slovo "names_to").
- Název hodnotového sloupce, který bude vytvořen – obsahuje hodnoty ze sloučených sloupců (klíčové slovo "values_to").
Pivotovaný datový rámec použiješ k porovnání skutečných a predikovaných počtů půjčení jako funkce času. Časový index instant počítá počet pozorování od začátku sběru dat. Ukázkový kód převede hodnoty instant na denní jednotky začínající od 0.
Dataový rámec bikesAugust s predikcemi (bikesAugust$pred) je předem načtený.
Toto cvičení je součástí kurzu
Supervised Learning in R: Regression
Pokyny k cvičení
- Doplň chybějící části kódu tak, aby graf zobrazoval predikce i skutečné počty půjčení po hodinách za prvních 14 dní srpna.
- Převeď
instantna denní jednotky místo hodinových. - Použij
pivot_longer()na sloupcecntapreda slouč je do sloupcevalues klíčemvaluetype. - Pomocí
filter()vyber první dva týdny srpna. - Vykresli
valuejako funkciinstant(ve dnech).
- Převeď
Dokáže model zachytit obecné časové vzory v půjčování kol?
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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")