Szczegóły ebooka

Szeregi czasowe. Praktyczna analiza i predykcja z wykorzystaniem statystyki i uczenia maszynowego

Szeregi czasowe. Praktyczna analiza i predykcja z wykorzystaniem statystyki i uczenia maszynowego

Aileen Nielsen

Ebook

Analiza szeregów czasowych zyskuje na znaczeniu. Wraz z postępującą digitalizacją danych służby zdrowia, rozwojem inteligentnych miast czy upowszechniającym się internetem rzeczy staje się coraz bardziej potrzebna. Obiecującym rozwiązaniem jest analiza szeregów czasowych metodami wspomaganymi uczeniem maszynowym. Techniki te umożliwiają skuteczne monitorowanie i wykorzystywanie coraz większych zbiorów danych. Być może ich zastosowanie do pracy z szeregami czasowymi wydaje się nieoczywiste, jednak bez analiz szeregów czasowych nie można w pełni wykorzystać zebranych danych.

Ta książka jest szerokim, aktualnym i praktycznym przeglądem metod analizy szeregów czasowych, w którym ujęto pełny potok przetwarzania danych czasowych i modelowania. Zaprezentowano w niej rzeczywiste przypadki użycia tych metod i zilustrowano je obszernymi fragmentami znakomicie zaprojektowanego kodu w językach R i Python. Znalazły się tutaj praktyczne wskazówki ułatwiające rozwiązywanie najczęstszych problemów występujących w inżynierii danych czasowych i ich analizie. Ujęto tu zarówno konwencjonalne metody statystyczne, jak i nowoczesne techniki uczenia maszynowego. To bardzo przydatny przewodnik, dzięki któremu analitycy danych, inżynierowie oprogramowania i naukowcy będą mogli płynnie przejść od podstaw pracy z szeregami czasowymi do rozwiązywania konkretnych zagadnień na profesjonalnym poziomie.

Dzięki tej książce nauczysz się:

  • pozyskiwać, przechowywać i przetwarzać szeregi czasowe
  • eksplorować dane czasowe i symulować je
  • wykonywać pomiary błędów
  • pracować z szeregami czasowymi za pomocą uczenia maszynowego lub uczenia głębokiego
  • oceniać dokładność i wydajność modeli

Skutecznie analizuj szeregi czasowe i wydobywaj bezcenną wiedzę!


Wstęp 9

1. Koncepcja szeregów czasowych 15

  • Szeregi czasowe w różnych dziedzinach - krótka historia 15
    • Szeregi czasowe w medycynie 16
    • Przewidywanie pogody 20
    • Prognozy rozwoju gospodarczego 21
    • Astronomia 23
  • Początki analizy szeregów czasowych 24
  • Metody statystyczne w analizie szeregów czasowych 25
  • Uczenie maszynowe w analizie szeregów czasowych 26
  • Zobacz też 27

2. Pozyskiwanie i przetwarzanie szeregów czasowych 29

  • Gdzie można znaleźć szeregi czasowe? 30
    • Gotowe zestawy danych 30
    • Odnajdywanie szeregów czasowych 36
  • Konstruowanie szeregu czasowego na podstawie danych tabelarycznych 37
    • Przygotowanie danych - instrukcja krok po kroku 38
    • Konstruowanie szeregu czasowego na podstawie zebranych danych 44
  • Problemy związane ze znacznikami czasu 46
    • Czego dotyczy dany znacznik? 46
    • Praca z danymi pozbawionymi dokumentacji 48
    • Co to jest znacząca skala czasu? 50
  • Oczyszczanie danych 50
    • Brakujące dane 51
    • Zmiana częstotliwości próbkowania 60
    • Wygładzanie danych 63
  • Wahania sezonowe 68
  • Strefy czasowe 71
  • Zapobieganie zjawisku lookahead 74
  • Zobacz też 76

3. Metody eksplorowania danych czasowych 79

  • Metody ogólnego przeznaczenia 79
    • Wykresy liniowe 80
    • Histogramy 82
    • Wykresy punktowe 84
  • Metody przeznaczone do eksploracji szeregów czasowych 86
    • O stacjonarności słów kilka 86
    • Stosowanie okien czasowych 90
    • Związki pomiędzy wartościami w szeregu 95
    • Korelacje pozorne 105
  • Przegląd użytecznych metod wizualizacji 107
    • Wizualizacje w jednym wymiarze 107
    • Wizualizacje w dwóch wymiarach 108
    • Wizualizacje w trzech wymiarach 114
  • Zobacz też 117

4. Symulacje szeregów czasowych 119

  • Czym wyróżniają się symulacje szeregów czasowych? 120
    • Symulacje kontra prognozy 120
  • Symulacje w implementacjach 121
    • Przykład 1. - zrób to sam 121
    • Przykład 2. - tworzenie świata symulacji, który sam sobą steruje 126
    • Przykład 3. - symulacja zjawiska fizycznego 132
  • Uwagi końcowe 137
    • Symulacje z wykorzystaniem metod statystycznych 138
    • Symulacje z wykorzystaniem uczenia głębokiego 138
  • Zobacz też 138

5. Przechowywanie danych czasowych 141

  • Definiowanie wymagań 143
    • Dane rzeczywiste a dane przechowywane 144
  • Bazy danych 146
    • SQL kontra NoSQL 147
    • Przegląd popularnych rozwiązań bazodanowych dla szeregów czasowych 149
  • Przechowywanie danych w plikach 153
    • NumPy 154
    • Pandas 155
    • Odpowiedniki w środowisku R 155
    • Xarray 156
  • Zobacz też 157

6. Modele statystyczne 159

  • Dlaczego nie należy korzystać z regresji liniowej? 159
  • Metody statystyczne dla szeregów czasowych 161
    • Modele autoregresyjne 161
    • Modele ze średnią ruchomą 174
    • Zintegrowane modele autoregresyjne średniej ruchomej 178
    • Model wektorowej autoregresji 187
    • Inne modele 191
  • Zalety i wady modeli statystycznych 192
  • Zobacz też 193

7. Modele zmiennych stanu 195

  • Wady i zalety modeli zmiennych stanu 196
  • Filtr Kalmana 197
    • Model 197
    • Implementacja 199
  • Ukryte modele Markowa 203
    • Sposób działania modelu 204
    • Dopasowywanie modelu 205
    • Implementacja dopasowania modelu 208
  • Bayesowskie strukturalne szeregi czasowe (BSTS) 213
    • Implementacja 214
  • Zobacz też 218

8. Generowanie i selekcja cech 221

  • Przykład wprowadzający 222
  • Ogólne uwagi dotyczące cech 223
    • Natura danego szeregu 223
    • Wiedza dziedzinowa 224
    • Parametry zewnętrzne 225
  • Przegląd miejsc, w których można szukać inspiracji dotyczących wyboru cech 225
    • Biblioteki dostępne na licencji open source 226
    • Przykłady cech powiązanych z konkretnymi dziedzinami 230
  • Jak dokonać selekcji cech po ich wygenerowaniu? 233
  • Podsumowanie i wnioski 236
  • Zobacz też 236

9. Uczenie maszynowe w analizie szeregów czasowych 239

  • Klasyfikacja szeregów czasowych 240
    • Generowanie i selekcja cech 240
    • Drzewa decyzyjne 243
  • Klasteryzacja 250
    • Generowanie cech 251
    • Metryki uwzględniające zmianę czasu 258
    • Klasteryzacja w kodzie 262
  • Zobacz też 264

10. Uczenie głębokie 267

  • Geneza uczenia głębokiego 269
  • Implementacja sieci neuronowej 271
    • Dane, symbole, operacje, warstwy i grafy 272
  • Budowa potoku uczenia 275
    • Spojrzenie na zestaw danych 275
    • Elementy potoku uczenia 278
  • Jednokierunkowe sieci neuronowe 293
    • Prosty przykład 293
    • Wykorzystanie modelu atencji do uczynienia jednokierunkowych sieci bardziej świadomymi czasu 296
  • Konwolucyjne sieci neuronowe 298
    • Prosty model sieci konwolucyjnej 300
    • Alternatywne modele konwolucyjne 302
  • Rekurencyjne sieci neuronowe 304
    • Kontynuacja przykładu z zapotrzebowaniem na prąd 307
    • Autoenkoder 308
  • Połączenie architektur 309
  • Podsumowanie 313
  • Zobacz też 314

11. Pomiary błędów 317

  • Podstawy: jak przetestować prognozę? 318
    • Weryfikacja historyczna a kwestie związane z konkretnym modelem 320
  • Kiedy prognoza jest wystarczająco dobra? 321
  • Szacowanie niepewności modelu w oparciu o symulację 323
  • Prognozowanie na wiele kroków naprzód 326
    • Bezpośrednie dopasowanie do danego horyzontu 326
    • Podejście rekurencyjne do odległych horyzontów czasowych 326
    • Uczenie wielozadaniowe w kontekście szeregów czasowych 327
  • Pułapki walidacji 327
  • Zobacz też 328

12. Kwestie wydajnościowe w dopasowywaniu i wdrażaniu modeli 331

  • Praca z narzędziami przeznaczonymi do bardziej ogólnych przypadków użycia 332
    • Modele zbudowane z myślą o danych przekrojowych nie "współdzielą" danych pomiędzy próbkami 332
    • Modele, które nie wspierają wcześniejszego obliczania, tworzą niepotrzebne opóźnienia pomiędzy pomiarem a prognozowaniem 334
  • Wady i zalety formatów zapisu danych 334
    • Przechowuj dane w formacie binarnym 335
    • Przetwarzaj dane w sposób umożliwiający "przesuwanie się" po nich 335
  • Modyfikacje analizy dla zwiększenia jej wydajności 336
    • Wykorzystanie wszystkich danych to niekoniecznie najlepszy pomysł 336
    • Złożone modele nie zawsze sprawdzają się znacznie lepiej 337
    • Krótki przegląd innych wysokowydajnych narzędzi 338
  • Zobacz też 338

13. Zastosowania w obszarze opieki zdrowotnej 341

  • Przewidywanie grypy 341
    • Studium przypadku grypy w jednym obszarze metropolitalnym 341
    • Jak obecnie wygląda prognozowanie grypy? 354
  • Przewidywanie stężenia cukru we krwi 356
    • Eksploracja danych i ich oczyszczanie 357
    • Generowanie cech 361
    • Dopasowanie modelu 366
  • Zobacz też 371

14. Zastosowania w obszarze finansów 373

  • Pozyskiwanie i eksploracja danych finansowych 374
  • Wstępne przetwarzanie danych do uczenia głębokiego 380
    • Dodawanie interesujących nas wielkości do surowych danych 380
    • Skalowanie interesujących nas wielkości bez wprowadzania zjawiska lookahead 381
    • Formatowanie danych do sieci neuronowej 383
  • Budowanie i uczenie rekurencyjnej sieci neuronowej 386
  • Zobacz też 392

15. Szeregi czasowe w danych rządowych 393

  • Pozyskiwanie danych rządowych 394
  • Eksploracja dużych zbiorów danych czasowych 395
    • Zwiększenie częstotliwości próbkowania i agregowanie danych podczas iteracji 399
    • Sortowanie danych 399
  • Statystyczna analiza szeregów czasowych "w locie" 403
    • Pozostałe pytania 412
    • Dalsze możliwości poprawy 413
  • Zobacz też 413

16. Pakiety przeznaczone do pracy z szeregami czasowymi 415

  • Prognozowanie na dużą skalę 415
    • Wewnętrzne narzędzia Google'a do przemysłowego prognozowania 416
    • Otwartoźródłowy pakiet Prophet od Facebooka 418
  • Wykrywanie anomalii 422
    • Otwartoźródłowy pakiet AnomalyDetection od Twittera 422
  • Inne pakiety stworzone z myślą o szeregach czasowych 425
  • Zobacz też 426

17. Prognozy o prognozowaniu 427

  • Prognozowanie jako usługa 427
  • Uczenie głębokie zwiększa możliwości probabilistyczne 428
  • Wzrost znaczenia uczenia maszynowego kosztem statystyki 429
  • Wzrost popularności metod łączących podejście statystyczne i uczenie maszynowe 429
  • Więcej prognoz dotyczących życia codziennego 430
  • Tytuł: Szeregi czasowe. Praktyczna analiza i predykcja z wykorzystaniem statystyki i uczenia maszynowego
  • Autor: Aileen Nielsen
  • Tytuł oryginału: Practical Time Series Analysis: Prediction with Statistics and Machine Learning
  • Tłumaczenie: Filip Kamiński
  • ISBN: 978-83-283-6722-7, 9788328367227
  • Data wydania: 2020-09-22
  • Format: Ebook
  • Identyfikator pozycji: szecza
  • Wydawca: Helion