You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/pl/7-TimeSeries/1-Introduction/README.md

13 KiB

Wprowadzenie do prognozowania szeregów czasowych

Podsumowanie szeregów czasowych w formie sketchnote

Sketchnote autorstwa Tomomi Imura

W tej lekcji oraz w kolejnej dowiesz się więcej o prognozowaniu szeregów czasowych, interesującym i wartościowym elemencie warsztatu naukowca zajmującego się ML, który jest nieco mniej znany niż inne tematy. Prognozowanie szeregów czasowych to swego rodzaju „kryształowa kula”: na podstawie wcześniejszych wyników zmiennej, takiej jak cena, można przewidzieć jej przyszłą potencjalną wartość.

Wprowadzenie do prognozowania szeregów czasowych

🎥 Kliknij obrazek powyżej, aby obejrzeć film o prognozowaniu szeregów czasowych

Quiz przed lekcją

To użyteczna i interesująca dziedzina, która ma realną wartość dla biznesu, biorąc pod uwagę jej bezpośrednie zastosowanie w problemach związanych z cenami, zapasami i łańcuchem dostaw. Chociaż techniki głębokiego uczenia zaczęły być wykorzystywane do uzyskiwania większych wglądów w celu lepszego przewidywania przyszłych wyników, prognozowanie szeregów czasowych pozostaje dziedziną w dużej mierze opartą na klasycznych technikach ML.

Przydatny program nauczania dotyczący szeregów czasowych z Penn State można znaleźć tutaj

Wprowadzenie

Załóżmy, że zarządzasz zestawem inteligentnych parkometrów, które dostarczają danych o tym, jak często są używane i na jak długo w określonym czasie.

Co by było, gdybyś mógł przewidzieć, na podstawie wcześniejszych wyników parkometru, jego przyszłą wartość zgodnie z prawami podaży i popytu?

Dokładne przewidywanie, kiedy podjąć działania w celu osiągnięcia swojego celu, to wyzwanie, które można rozwiązać za pomocą prognozowania szeregów czasowych. Nie sprawiłoby to radości ludziom, gdyby byli obciążani wyższymi opłatami w godzinach szczytu, kiedy szukają miejsca parkingowego, ale byłby to pewny sposób na wygenerowanie dochodów na sprzątanie ulic!

Przyjrzyjmy się niektórym typom algorytmów szeregów czasowych i rozpocznijmy pracę z notebookiem, aby oczyścić i przygotować dane. Dane, które będziesz analizować, pochodzą z konkursu prognozowania GEFCom2014. Obejmują one 3 lata godzinowych wartości obciążenia elektrycznego i temperatury między 2012 a 2014 rokiem. Na podstawie historycznych wzorców obciążenia elektrycznego i temperatury możesz przewidzieć przyszłe wartości obciążenia elektrycznego.

W tym przykładzie nauczysz się, jak prognozować jeden krok czasowy do przodu, używając wyłącznie danych historycznych dotyczących obciążenia. Zanim jednak zaczniesz, warto zrozumieć, co dzieje się „za kulisami”.

Kilka definicji

Spotykając się z terminem „szeregi czasowe”, musisz zrozumieć jego zastosowanie w różnych kontekstach.

🎓 Szeregi czasowe

W matematyce „szereg czasowy to seria punktów danych indeksowanych (lub wymienionych lub przedstawionych na wykresie) w porządku czasowym. Najczęściej szereg czasowy to sekwencja pobierana w kolejnych równomiernie rozłożonych punktach w czasie.” Przykładem szeregu czasowego jest dzienna wartość zamknięcia Dow Jones Industrial Average. Wykorzystanie wykresów szeregów czasowych i modelowania statystycznego jest często spotykane w przetwarzaniu sygnałów, prognozowaniu pogody, przewidywaniu trzęsień ziemi i innych dziedzinach, w których występują zdarzenia, a punkty danych można przedstawić w czasie.

🎓 Analiza szeregów czasowych

Analiza szeregów czasowych to analiza wspomnianych wyżej danych szeregów czasowych. Dane szeregów czasowych mogą przyjmować różne formy, w tym „przerwane szeregi czasowe”, które wykrywają wzorce w ewolucji szeregu czasowego przed i po zdarzeniu zakłócającym. Rodzaj analizy potrzebnej dla szeregów czasowych zależy od charakteru danych. Same dane szeregów czasowych mogą przyjmować formę serii liczb lub znaków.

Analiza, która ma być przeprowadzona, wykorzystuje różnorodne metody, w tym domenę częstotliwości i domenę czasu, liniowe i nieliniowe, i inne. Dowiedz się więcej o wielu sposobach analizy tego typu danych.

🎓 Prognozowanie szeregów czasowych

Prognozowanie szeregów czasowych to wykorzystanie modelu do przewidywania przyszłych wartości na podstawie wzorców wyświetlanych przez wcześniej zgromadzone dane, które wystąpiły w przeszłości. Chociaż możliwe jest użycie modeli regresji do eksploracji danych szeregów czasowych, z indeksami czasowymi jako zmiennymi x na wykresie, takie dane najlepiej analizować za pomocą specjalnych typów modeli.

Dane szeregów czasowych to lista uporządkowanych obserwacji, w przeciwieństwie do danych, które można analizować za pomocą regresji liniowej. Najczęściej stosowanym modelem jest ARIMA, akronim oznaczający „Autoregressive Integrated Moving Average”.

Modele ARIMA „odnoszą bieżącą wartość szeregu do wcześniejszych wartości i wcześniejszych błędów prognozowania.” Są one najbardziej odpowiednie do analizy danych w domenie czasu, gdzie dane są uporządkowane w czasie.

Istnieje kilka typów modeli ARIMA, o których możesz dowiedzieć się tutaj i które omówisz w następnej lekcji.

W następnej lekcji zbudujesz model ARIMA, korzystając z Jednowymiarowych szeregów czasowych, które koncentrują się na jednej zmiennej zmieniającej swoją wartość w czasie. Przykładem tego typu danych jest ten zestaw danych, który rejestruje miesięczne stężenie CO2 w Obserwatorium Mauna Loa:

CO2 YearMonth Year Month
330.62 1975.04 1975 1
331.40 1975.13 1975 2
331.87 1975.21 1975 3
333.18 1975.29 1975 4
333.92 1975.38 1975 5
333.43 1975.46 1975 6
331.85 1975.54 1975 7
330.01 1975.63 1975 8
328.51 1975.71 1975 9
328.41 1975.79 1975 10
329.25 1975.88 1975 11
330.97 1975.96 1975 12

Zidentyfikuj zmienną, która zmienia się w czasie w tym zestawie danych

Charakterystyka danych szeregów czasowych, którą należy wziąć pod uwagę

Analizując dane szeregów czasowych, możesz zauważyć, że mają one pewne cechy, które należy uwzględnić i zniwelować, aby lepiej zrozumieć ich wzorce. Jeśli uznasz dane szeregów czasowych za potencjalnie dostarczające „sygnał”, który chcesz przeanalizować, te cechy można traktować jako „szum”. Często będziesz musiał zredukować ten „szum”, kompensując niektóre z tych cech za pomocą technik statystycznych.

Oto kilka pojęć, które powinieneś znać, aby móc pracować z szeregami czasowymi:

🎓 Trendy

Trendy są definiowane jako mierzalne wzrosty i spadki w czasie. Przeczytaj więcej. W kontekście szeregów czasowych chodzi o to, jak wykorzystać i, jeśli to konieczne, usunąć trendy z szeregów czasowych.

🎓 Sezonowość

Sezonowość jest definiowana jako okresowe wahania, takie jak świąteczne wzrosty sprzedaży. Zobacz, jak różne typy wykresów pokazują sezonowość w danych.

🎓 Wartości odstające

Wartości odstające są daleko od standardowej wariancji danych.

🎓 Długoterminowy cykl

Niezależnie od sezonowości, dane mogą wykazywać długoterminowy cykl, taki jak recesja gospodarcza trwająca dłużej niż rok.

🎓 Stała wariancja

Z biegiem czasu niektóre dane wykazują stałe wahania, takie jak zużycie energii w ciągu dnia i nocy.

🎓 Nagłe zmiany

Dane mogą wykazywać nagłą zmianę, która może wymagać dalszej analizy. Na przykład nagłe zamknięcie firm z powodu COVID spowodowało zmiany w danych.

Oto przykładowy wykres szeregów czasowych pokazujący dzienne wydatki na walutę w grze na przestrzeni kilku lat. Czy potrafisz zidentyfikować którąkolwiek z wymienionych cech w tych danych?

Wydatki na walutę w grze

Ćwiczenie - rozpoczęcie pracy z danymi dotyczącymi zużycia energii

Rozpocznijmy tworzenie modelu szeregów czasowych, aby przewidzieć przyszłe zużycie energii na podstawie wcześniejszego zużycia.

Dane w tym przykładzie pochodzą z konkursu prognozowania GEFCom2014. Obejmują one 3 lata godzinowych wartości obciążenia elektrycznego i temperatury między 2012 a 2014 rokiem.

Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli i Rob J. Hyndman, „Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond”, International Journal of Forecasting, vol.32, no.3, pp 896-913, lipiec-wrzesień, 2016.

  1. W folderze working tej lekcji otwórz plik notebook.ipynb. Zacznij od dodania bibliotek, które pomogą Ci załadować i wizualizować dane:

    import os
    import matplotlib.pyplot as plt
    from common.utils import load_data
    %matplotlib inline
    

    Zwróć uwagę, że używasz plików z dołączonego folderu common, które konfigurują Twoje środowisko i obsługują pobieranie danych.

  2. Następnie przeanalizuj dane jako dataframe, wywołując load_data() i head():

    data_dir = './data'
    energy = load_data(data_dir)[['load']]
    energy.head()
    

    Możesz zobaczyć, że są dwie kolumny reprezentujące datę i obciążenie:

    load
    2012-01-01 00:00:00 2698.0
    2012-01-01 01:00:00 2558.0
    2012-01-01 02:00:00 2444.0
    2012-01-01 03:00:00 2402.0
    2012-01-01 04:00:00 2403.0
  3. Teraz, przedstaw dane na wykresie, wywołując plot():

    energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
    plt.xlabel('timestamp', fontsize=12)
    plt.ylabel('load', fontsize=12)
    plt.show()
    

    wykres energii

  4. Następnie, przedstaw pierwszy tydzień lipca 2014 roku, podając go jako dane wejściowe do energy w formacie [od daty]: [do daty]:

    energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
    plt.xlabel('timestamp', fontsize=12)
    plt.ylabel('load', fontsize=12)
    plt.show()
    

    lipiec

    Piękny wykres! Przyjrzyj się tym wykresom i zobacz, czy możesz określić którąkolwiek z wymienionych cech. Co możemy wywnioskować, wizualizując dane?

W następnej lekcji stworzysz model ARIMA, aby wygenerować prognozy.


🚀Wyzwanie

Zrób listę wszystkich branż i obszarów badań, które Twoim zdaniem mogłyby skorzystać z prognozowania szeregów czasowych. Czy potrafisz wymyślić zastosowanie tych technik w sztuce? W ekonometrii? Ekologii? Handlu detalicznym? Przemyśle? Finansach? Gdzie jeszcze?

Quiz po lekcji

Przegląd i samodzielna nauka

Chociaż nie omówimy ich tutaj, sieci neuronowe są czasami używane do ulepszania klasycznych metod prognozowania szeregów czasowych. Przeczytaj więcej na ten temat w tym artykule

Zadanie

Zwizualizuj więcej szeregów czasowych


Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby zapewnić poprawność tłumaczenia, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.