Wizualizacja prognoz wypożyczeń rowerów
W poprzednim ćwiczeniu zwizualizowałeś/zwizualizowałaś prognozy modelu rowerowego za pomocą standardowego wykresu punktowego „wartości rzeczywiste vs. prognozy". Ponieważ dane o wypożyczeniach rowerów są danymi szeregów czasowych, warto sprawdzić, jak model radzi sobie w funkcji czasu. W tym ćwiczeniu porównasz prognozy z rzeczywistą liczbą wypożyczeń w ujęciu godzinowym – dla pierwszych 14 dni sierpnia.
Do stworzenia wykresu użyjesz funkcji tidyr::pivot_longer() (docs), która pozwoli zebrać wartości prognozowane i rzeczywiste z bikesAugust w jednej kolumnie. Funkcja pivot_longer() przyjmuje następujące argumenty:
- Ramka danych w formacie „szerokim" do przekształcenia (podana niejawnie przez potok).
- Nazwy kolumn do zebrania w jedną kolumnę (słowo kluczowe
"cols"). - Nazwa tworzonej kolumny kluczy – zawiera nazwy zebranych kolumn (słowo kluczowe
"names_to"). - Nazwa tworzonej kolumny wartości – zawiera wartości zebranych kolumn (słowo kluczowe
"values_to").
Przekształconej ramki danych użyjesz do porównania rzeczywistej i prognozowanej liczby wypożyczeń w funkcji czasu. Indeks czasowy instant zlicza obserwacje od początku gromadzenia danych. Przykładowy kod konwertuje wartości instant na jednostki dzienne, zaczynając od 0.
Ramka danych bikesAugust wraz z prognozami (bikesAugust$pred) została wczytana.
To ćwiczenie jest częścią kursu
Nadzorowane uczenie maszynowe w R: regresja
Instrukcje do ćwiczenia
- Uzupełnij luki, aby wykreślić prognozy i rzeczywistą liczbę wypożyczeń w ujęciu godzinowym dla pierwszych 14 dni sierpnia.
- Przekonwertuj
instantna jednostki dzienne zamiast godzinowych. - Użyj
pivot_longer(), aby zebrać kolumnycntipredw kolumnę o nazwievaluez kluczemvaluetype. - Użyj
filter(), aby wybrać pierwsze dwa tygodnie sierpnia. - Wykreśl
valuejako funkcjęinstant(w dniach).
- Przekonwertuj
Czy model wykrywa ogólne wzorce czasowe w danych o wypożyczeniach rowerów?
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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")