Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Praca z prognozowaniem wielowymiarowych szeregów czasowych

Dzięki Qlik Predict można trenować modele uczenia maszynowego do prognozowania metryk specyficznych dla czasu. Korzystając z metod opartych na sieciach neuronowych, modele uczą się i przewidują złożone wzorce obejmujące skojarzenia specyficzne dla czasu, pogrupowane dane docelowe, historyczne cechy i znane przyszłe zmienne. Aby utworzyć prognozę szeregów czasowych, przygotuj zestaw danych treningowych, użyj go w eksperymencie szeregów czasowych, wdróż model, a następnie utwórz zestawy danych do zastosowania, których możesz użyć do generowania przewidywań.

Składniki problemu szeregów czasowych

W prognozowaniu szeregów czasowych celem jest przewidywanie wartości docelowych dla konkretnych dat w przyszłości. Na przykład możesz chcieć przewidzieć sprzedaż na następny tydzień, miesiąc lub kwartał.

Podczas opracowywania problemu szeregów czasowych zdefiniuj następujące komponenty:

  • Wartość docelowa i grupy

  • Indeks daty

  • Horyzont prognozy

  • Kowariancje

InformacjaTe ramy opisują, jak zdefiniować pytanie uczenia maszynowego dla problemów prognozowania szeregów czasowych. Aby zdefiniować pytania uczenia maszynowego dla problemów klasyfikacji i regresji, zobacz Definiowanie pytań uczenia maszynowego.

Uproszczona ilustracja przedstawiająca komponenty problemu prognozowania szeregów czasowych w Qlik Predict.

Cel

Podobnie jak w przypadku innych typów eksperymentów, celem jest kolumna, dla której model ma przewidywać przyszłe wartości. W przypadku eksperymentów z szeregami czasowymi cel musi zawierać dane liczbowe — na przykład sprzedaż lub zapasy.

Jeśli używasz grup w prognozie szeregów czasowych, modele przewidzą jedną wartość docelową na grupę na krok czasowy w oknie prognozy. Jeśli nie używasz grup, Twoje wytrenowane modele przewidzą jedną wartość docelową dla każdego kroku czasowego w oknie prognozy.

Indeks daty

Indeks dat śledzi metryki szeregów czasowych w ciągłym przedziale czasowym (krok czasowy). Musisz zdecydować o swoim kroku czasowym na wczesnym etapie: jak często musisz przewidywać przyszłe wartości?

W szczególności, indeks daty to kolumna, która pojawia się w Twoich zbiorach danych treningowych i aplikacyjnych dla problemów szeregów czasowych. Indeks daty określa strukturę obu tych zbiorów danych aplikacyjnych — każdy wiersz reprezentuje krok w czasie (lub, w przypadku grup, krok w czasie dla każdego unikalnego grupowania).

Gdy dodajesz swój zbiór danych treningowych w eksperymencie szeregów czasowych, możliwe kolumny indeksu daty są automatycznie identyfikowane i prezentowane jako Wglądy na poziomie kolumny. Możesz je zidentyfikować na podstawie wglądu Możliwy indeks daty w widoku schematu.

Grupy

Grupy to cechy zawierające informacje kategoryczne, dla których chcesz generować prognozy oddzielnie. Klasyczne przykłady grup obejmują numer sklepu i produkt, które mogłyby zostać użyte do organizacji danych dla celu, takiego jak sprzedaż. Wybierając numer sklepu i typ produktu jako grupy, Twoje modele szeregów czasowych dostarczą prognozy dla każdej indywidualnej wartości w tych kolumnach. Na przykład, z celem sprzedaży, jeśli masz trzy numery sklepów — 1, 2 i 3 — oraz dwa typy produktów — spożywcze i świeże — Twój model wygeneruje prognozy sprzedaży dla każdej unikalnej kombinacji tych wartości.

Powinieneś włączyć grupy do swojego problemu szeregów czasowych, jeśli masz dane i potrzebujesz indywidualnych prognoz według kategorii. Kolejną zaletą grup jest to, że modele mogą uczyć się globalnie, lepiej rozumiejąc wzorce, które istnieją między różnymi zdefiniowanymi przez Ciebie grupowaniami.

Możesz skonfigurować grupy do użycia dla każdej wersji eksperymentu. Jeśli nie określisz grup, ale grupy są zidentyfikowane w Twoim zbiorze danych treningowych, trening będzie używał grup.

Grupy są identyfikowane przez zduplikowane wartości w kolumnie indeksu daty — na przykład, dla daty 14.01.2025 masz dwa rekordy: jeden dla sklepu A i drugi dla sklepu B.

Każda grupa w eksperymencie szeregów czasowych — w tym sam cel — jest uważana za oddzielny szereg czasowy w Twoim zbiorze danych. Zob. Czym jest szereg czasowy?.

Horyzont prognozy

Horyzont prognozy określa, jak daleko w przyszłość chcesz prognozować. Horyzont prognozy składa się z okna prognozy (liczba kroków czasowych, dla których potrzebujesz prognoz) i luki prognozy (opcjonalna liczba kroków czasowych po danych historycznych, dla których nie chcesz prognoz).

Okno prognozy i rozmiar luki ustawiasz podczas konfigurowania wersji eksperymentu. Wartości te są używane zarówno podczas trenowania modelu, jak i podczas generowania prognoz z modeli wdrożonych jako wdrożenia ML.

Okno prognozy to liczba kroków czasowych, dla których chcesz prognozować w przyszłość. Na przykład, jeśli krok czasowy wynosi jeden dzień i chcesz prognozować sprzedaż na następne dwa tygodnie, ustawisz okno prognozy na 14.

Luka prognozy to ilość czasu w przyszłości, dla którego nie wymagasz prognoz. Ustawienie luki prognozy jest opcjonalne, ponieważ możesz jej potrzebować lub nie. Luka prognozy zaczyna się na końcu zarejestrowanych historycznych danych treningowych, które podałeś. Okno prognozy zaczyna się tam, gdzie kończy się luka prognozy.

Na przykład, możesz chcieć przewidzieć przyszłą sprzedaż, ale interesuje Cię tylko przyszła sprzedaż dla dat późniejszych niż jeden tydzień po zakończeniu Twoich danych wejściowych. W tym przypadku, przy kroku czasowym w dniach, możesz ustawić rozmiar luki prognozy na siedem kroków czasowych.

Wybrane okno prognozy, oprócz ilości posiadanych danych treningowych, ogranicza to, jak daleko w przyszłość możesz prognozować.Więcej informacji można znaleźć w temacie Maksymalne okno prognozy.

Kowariancje

W problemach szeregów czasowych, cechy są często nazywane kowariancjami. Podobnie jak w innych problemach uczenia maszynowego, kowariancje to inne zmienne, które podejrzewasz, że mają wpływ na wynik celu. Każda kowariancja jest reprezentowana jako pojedyncza kolumna w Twoim zbiorze danych treningowych.

W prognozowaniu szeregów czasowych istnieje kilka typów kowariancji i mają one pewne ważne rozróżnienia:

  • Kowariancje statyczne: Kolumny, które nie zmieniają się w trakcie szeregu czasowego. Kowariancje statyczne mają zastosowanie w eksperymentach szeregów czasowych, gdzie używane są grupy. Na przykład, załóżmy, że masz grupy dla Produktu i Numeru Sklepu, i istnieje cecha Domyślny Rabat. Jeśli Produkt A w Sklepie 1 ma domyślny rabat 10%, a Produkt B w Sklepie 2 ma domyślny rabat 20%, Domyślny Rabat byłby statyczną zmienną towarzyszącą. Oznacza to, że nie zmienia się w danych dla grupy, w której się pojawia.

    Statyczne zmienne towarzyszące są wykrywane automatycznie na podstawie historycznych cech, które uwzględniasz w eksperymencie. Nie musisz wskazywać, które cechy są statycznymi zmiennymi towarzyszącymi.

  • Kowariaty przeszłe: Zmienne zależne od czasu, które są dostępne tylko w danych historycznych i które różnią się w tych danych. Kowariaty przeszłe są wykrywane automatycznie na podstawie historycznych cech uwzględnionych w eksperymencie. Nie musisz jawnie wskazywać, które cechy są kowariatami przeszłymi.

  • Kowariaty przyszłe: Kowariaty przyszłe, znane również jako cechy przyszłe, to zmienne zależne od czasu, dla których będziesz znać przyszłe wartości w ramach horyzontu prognozy. Podczas używania kowariatów przyszłych w trenowaniu, musisz je wskazać jako cechy przyszłe w konfiguracji trenowania.

Cechy przyszłe

Dzięki przyszłym cechom możesz dostarczyć swoim modelom dodatkowe dane o przyszłych informacjach, które już znasz lub których możesz rozsądnie oczekiwać. W szczególności masz dostęp do przyszłych wartości dla tej cechy obejmujących wybrany horyzont prognozy. Podczas definiowania przyszłych cech musisz dostarczyć zarówno dane historyczne, jak i przyszłe.

Na przykład, dla modelu przewidującego metryki, na które mogą wpływać przyszłe rabaty oferowane przez sklep, można uwzględnić historycznie obserwowane rabaty, a także rabaty dla przyszłych okresów w ramach okna prognozy. Inne przykłady przyszłych cech to informacje o pogodzie lub kalendarzu.

Inne ważne koncepcje

Ta sekcja przedstawia koncepcje, które są istotne dla problemu szeregów czasowych, ale których nie konfiguruje się bezpośrednio w eksperymencie ani w wdrożeniu ML. Są to właściwości, które są definiowane przez Twoje dane lub przez inne właściwości konfigurowane dla modelu.

Kroki czasowe

Krok czasowy jest definiowany przez Twój zbiór danych treningowych i jest ważny zarówno dla trenowania, jak i przewidywań.

W Twoim zbiorze danych treningowych krok czasowy to interwał, w którym dane w Twoim indeksie dat są rejestrowane. Na przykład krok czasowy może być dzienny, co godzinę, co minutę lub co sekundę.

Ważne jest, aby być świadomym kroku czasowego użytego w Twoich danych treningowych. Inne parametry eksperymentu, które definiujesz, takie jak okno prognozy i rozmiar luki prognozy, będą obserwować ten interwał kroku czasowego.

Po wdrożeniu Twojego modelu, dane do zastosowania, dla których chcesz tworzyć prognozy, będą musiały obserwować ten sam krok czasowy, jak zdefiniowano w zbiorze danych treningowych.

Jakość

Po wybraniu zbioru danych treningowych system wnioskuje o używanym kroku czasowym. Jeśli w indeksie dat występują brakujące lub niespójne wartości, te cechy mogą zostać automatycznie interpolowane przez system. Jednakże, jeśli dane zawierają interwały czasowe, które są niespójne do tego stopnia, że wykrywane są różne kroki czasowe, dane muszą zostać najpierw naprawione. Na przykład, jeśli masz dane z kilku miesięcy rejestrowane raz dziennie, ale jest sekcja, w której dane są konsekwentnie rejestrowane co tydzień, zestaw danych nie może być użyty, ponieważ zostanie wykrytych wiele kroków czasowych.

Zastosuj okno

Okno zastosowania, czyli okres wsteczny, to część danych treningowych, którą algorytm może wykorzystać do dostarczenia prognoz dla określonego okna prognozy.

Okno zastosowania jest obliczane i ustawiane przez system. Jest mierzone w krokach czasowych. Okno zastosowania jest definiowane przez to, co ustawisz jako okno prognozy i lukę (horyzont prognozy).

Okno zastosowania jest identyfikowane automatycznie z konfiguracji treningowej. Aby wygenerować prognozy dla danego okna prognozy, należy dostarczyć dane historyczne obejmujące co najmniej okno aplikacji. Jest to dostarczane w zestawie danych aplikacji. Zob. Przygotowywanie zestawu danych do zastosowania.

Maksymalne okno prognozy

Maksymalne okno prognozy jest szacowane podczas konfigurowania eksperymentu szeregów czasowych. Po uruchomieniu wersji trenowania maksymalne okno prognozy jest potwierdzane z pewnością. Maksymalne okno prognozy jest wyświetlane jako Szacowana maksymalna prognoza lub Maksymalna prognoza w sekcji Na podstawie Twoich danych, po otwarciu Cel i typ eksperymentu w panelu konfiguracji eksperymentu. Maksymalne okno prognozy to maksymalna liczba kroków czasowych, dla których można generować prognozy, biorąc pod uwagę wybrane okno prognozy, ilość dostarczonych danych historycznych oraz minimalną wielkość próbki oczekiwaną przez system. Im więcej danych historycznych dostarczysz, tym dalej w przyszłość będziesz w stanie przewidywać. Jednakże, aby generować wiarygodne prognozy, ważne jest, aby wybrać rozsądne okno prognozy.

Maksymalne okno prognozy może być tak duże jak 180 kroków czasowych.

Czas odcięcia prognozy

Czas odcięcia prognozy jest szczególnie ważny podczas definiowania zestawu danych do zastosowania w trakcie prognozowania. Czas odcięcia prognozy to ostatnia data w Twojej próbce, dla której masz wartość docelową. Zasadniczo, daty po tym czasie odcięcia to daty, dla których chcesz wygenerować prognozy.

Czym jest szereg czasowy?

W Qlik Predict prognozowaniu szeregów czasowych, każda grupa — włączając w to sam cel — jest uważana za oddzielny szereg czasowy w ramach zestawu danych treningowych. Na przykład, załóżmy, że Twój zestaw danych uczących zawiera metryki sprzedaży. Te metryki sprzedaży są zdefiniowane dla każdego sklepu i typu produktu. Gdy kolumny Sklep i Typ produktu są zdefiniowane jako grupy, w zestawie danych uczących znajdują się trzy szeregi czasowe.

Przygotowanie zestawu danych do uczenia

W przypadku prognoz wielowymiarowych szeregów czasowych, Twój zestaw danych uczących musi zawierać następujące kolumny:

  • Indeks daty

  • Kolumna docelowa

  • Kolumny grup (opcjonalnie)

  • Kolumny cech (opcjonalnie — bez cech trenujesz jednowymiarowy model prognozowania)

Ilustracje przedstawiające wymagane kolumny i dane dla zestawów danych treningowych szeregów czasowych. Opisano scenariusze bez grup, z jedną grupą i z dwiema grupami.

Liniowy diagram przedstawiający potrzebne komponenty i harmonogram zestawu danych treningowych dla modelu prognozowania szeregów czasowych.

Kolumna indeksu daty

Potrzebujesz indeksu daty zawierającego pełne daty lub znaczniki czasu. Ta kolumna jest chronologicznym indeksem, wzdłuż którego śledzone są metryki docelowe i kowariancyjne. Kolumna indeksu daty porządkuje pomiary oparte na czasie sekwencyjnie wzdłuż spójnego interwału czasowego (kroku czasowego).

Kolumna indeksu daty jest zorganizowana w następujący sposób, w zależności od tego, czy używasz grup, czy nie:

  • Brak grup: Pojedynczy rekord dla każdego kroku czasowego. Na przykład, w przypadku prognozy dziennej, każdy wiersz reprezentuje pojedynczy dzień.

  • Z grupami: Jeden lub więcej zduplikowanych wpisów dla każdego kroku czasowego, w zależności od użytych grup.

W przypadku wielowymiarowego zbioru danych treningowych, będzie jeden lub więcej zduplikowanych wpisów dla każdego kroku czasowego, w zależności od użytych grup. Istnieje elastyczność w kroku czasowym, którego używasz — możesz na przykład rejestrować daty raz lub więcej razy w ujęciu dziennym, tygodniowym, miesięcznym itd.

Brakujące lub niespójnie zarejestrowane wartości w tej kolumnie są czasami dopuszczalne, jeśli można je interpolować.Jednak wartości indeksu daty nie mogą zawierać wielu różnych kroków czasowych. Na przykład, jeśli interwał zostanie określony jako raz dziennie, ale w pewnym momencie zostanie zidentyfikowany interwał dwa razy dziennie, podczas trenowania wystąpi błąd.

Kolumna docelowa i kolumny grup

Twój zbiór danych musi zawierać kolumnę docelową zawierającą metrykę numeryczną, którą chcesz prognozować. Typowym przykładem jest sprzedaż.

Jeśli używasz grup, podajesz historyczne wartości docelowe dla każdej możliwej wartości w dodawanych grupach. Na przykład, jeśli Twoim celem jest Sprzedaż i dodasz grupę Numer Sklepu, która zawiera dane dla Sklepu A i Sklepu B, Twój zbiór danych musi zawierać dwa oddzielne rekordy dla każdego kroku czasowego: jeden z wartością sprzedaży dla Sklepu A, a drugi z wartością sprzedaży dla Sklepu B.

Kolumny cech

Możesz trenować model szeregów czasowych bez żadnych kowariantów. Jeśli jednak uwzględnisz kowarianty, podaj kolumnę w zestawie danych dla każdej cechy. Dane cech powinny być zazwyczaj danymi historycznymi, chyba że dodajesz przyszłe cechy. Kolumny przyszłych cech mogą zawierać zarówno dane historyczne, jak i przyszłe. Dane przyszłych cech należy uwzględniać w zestawie danych treningowych tylko wtedy, gdy masz pewność, że przyszłe wartości tych kolumn będą znane w momencie tworzenia prognoz.

Śledź, które cechy będziesz używać jako przyszłe cechy, ponieważ będziesz musiał je wybrać jako takie w konfiguracji szkolenia.

Wolumen danych

Twój zestaw danych musi zawierać wystarczającą liczbę rekordów. Wolumen Twoich danych historycznych odgrywa rolę w określaniu, jak daleko w przyszłość możesz przewidywać. Żądane okno prognozy również wpływa na to, ile danych historycznych potrzebujesz.

Ogólnie rzecz biorąc, więcej danych historycznych jest lepsze niż mniej. Jednakże dane muszą być dobrej jakości i odzwierciedlać pożądane trendy. Jeśli dane dostarczają nieistotnych informacji lub zawierają nieścisłości, ich posiadanie w modelu nie jest pomocne. Należy rozważyć równowagę między optymalizacją ilości a utrzymaniem jakości i trafności.

Przykłady

Przygotowywanie zestawu danych do zastosowania

Po wdrożeniu modelu szeregów czasowych należy opracować zestaw danych do zastosowania, dla którego będą tworzone prognozy.

Zestaw danych do zastosowania — Wymagania i walidacja

Dla modeli szeregów czasowych, zestaw danych aplikacji wymaga:

  • Kolumny i nagłówki kolumn dla wszystkich kolumn zawartych w zestawie danych do nauki.

  • Ten sam krok czasowy co w zestawie danych szkoleniowych.

  • Tyle samo lub więcej historycznych rekordów danych (na cel i grupę) sprzed czasu odcięcia prognozy, ile wynosi liczba rekordów w oknie stosowania dla modelu. Muszą to być pełne rekordy zawierające historycznie zaobserwowaną datę lub znacznik czasu, cel oraz wartości kowariantów. Okno stosowania jest określane przez okno prognozy i lukę skonfigurowane podczas uczenia — im dalej w przyszłość musisz przewidywać, tym więcej danych historycznych potrzebujesz w swoim zestawie danych do zastosowania, aby uruchomić prognozy.

  • Rekordy dla wszystkich przyszłych kroków czasowych w horyzoncie prognozy. W przypadku tych przyszłych rekordów należy uwzględnić tylko wartości dla kolumny indeksu daty, a także wszelkie przyszłe cechy. Wartości dla pozostałych kolumn pozostaw puste.

WskazówkaWiększość wymagań dotyczących danych historycznych dla zestawu danych aplikacji polega na określeniu minimalnych akceptowalnych wolumenów danych. Zawsze możesz dostarczyć więcej niż potrzeba. Gdy model generuje prognozy, używane są tylko rekordy potrzebne do pokrycia okna aplikacji.

Ilustracje przedstawiające wymagane kolumny i dane dla zestawów danych aplikacji używanych do generowania prognoz z modeli prognozowania szeregów czasowych. Opisano scenariusze bez grup, z jedną grupą i z dwiema grupami.

Diagram liniowy przedstawiający potrzebne komponenty i harmonogram zestawu danych do zastosowania, który jest używany do generowania prognoz za pomocą modelu prognozowania szeregów czasowych.

Przykłady

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!