Zacznij terazZacznij za darmo

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

Zobacz kurs

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 instant na jednostki dzienne zamiast godzinowych.
    • Użyj pivot_longer(), aby zebrać kolumny cnt i pred w kolumnę o nazwie value z kluczem valuetype.
    • Użyj filter(), aby wybrać pierwsze dwa tygodnie sierpnia.
    • Wykreśl value jako funkcję instant (w dniach).

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")
Edytuj i uruchom kod