Omówienie metod prognozowania w rozwiązaniu AutoML

Ten artykuł koncentruje się na metodach używanych przez rozwiązanie AutoML do przygotowywania danych szeregów czasowych i tworzenia modeli prognozowania. Instrukcje i przykłady dotyczące modeli prognozowania trenowania w rozwiązaniu AutoML można znaleźć w artykule dotyczącym konfigurowania rozwiązania AutoML na potrzeby prognozowania szeregów czasowych.

Rozwiązanie AutoML używa kilku metod do prognozowania wartości szeregów czasowych. Te metody można przypisać w przybliżeniu do dwóch kategorii:

  1. Modele szeregów czasowych, które używają wartości historycznych ilości docelowej do przewidywania w przyszłości.
  2. Regresja lub objaśnienie modeli używających zmiennych predyktora do prognozowania wartości celu.

Rozważmy na przykład problem prognozowania dziennego zapotrzebowania na konkretną markę soku pomarańczowego ze sklepu spożywczego. Niech $y_t$ reprezentuje popyt na tę markę w dniu $t$. Model szeregów czasowych przewiduje zapotrzebowanie na $t+1$ przy użyciu niektórych funkcji historycznego zapotrzebowania,

$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$.

Funkcja $f$ często ma parametry, które dostrajamy przy użyciu obserwowanego zapotrzebowania z przeszłości. Ilość historii, która $f$ używa do przewidywania, $s$, można również uznać za parametr modelu.

Przykładowy model szeregów czasowych w przykładzie zapotrzebowania na sok pomarańczowy może nie być wystarczająco dokładny, ponieważ używa tylko informacji o wcześniejszym zapotrzebowaniu. Istnieje wiele innych czynników, które prawdopodobnie wpływają na przyszłe zapotrzebowanie, takie jak cena, dzień tygodnia i czy jest to święto, czy nie. Rozważ model regresji, który używa tych zmiennych predyktora,

$y = g(\text{price}, \text{dzień tygodnia}, \text{holiday})$.

Ponownie, $g$ ogólnie ma zestaw parametrów, w tym tych zarządzających regularyzacji, że automl melodie przy użyciu poprzednich wartości zapotrzebowania i predyktorów. Pomijamy $t$ z wyrażenia, aby podkreślić, że model regresji używa wzorców korelacji między zmiennymi zdefiniowanymi sporowo w celu przewidywania. Oznacza to, że aby przewidzieć $y_{t+1}$ z $g$, musimy wiedzieć, który dzień tygodnia $t +1$ spada, czy jest to święto, a cena soku pomarańczowego w dniu $t +1$. Pierwsze dwie informacje są zawsze łatwo znaleźć, konsultując kalendarz. Cena detaliczna jest zwykle ustawiana z wyprzedzeniem, więc cena soku pomarańczowego jest prawdopodobnie znana również jeden dzień wcześniej. Jednak cena może nie być znana 10 dni w przyszłości! Ważne jest, aby zrozumieć, że użyteczność tej regresji jest ograniczona przez to, jak daleko do przyszłości potrzebujemy prognoz, nazywanych również horyzontem prognozy i w jakim stopniu znamy przyszłe wartości predyktorów.

Ważne

Modele regresji prognozowania rozwiązania AutoML zakładają, że wszystkie funkcje udostępniane przez użytkownika są znane w przyszłości, co najmniej do horyzontu prognozy.

Modele regresji prognozowania rozwiązania AutoML można również rozszerzyć, aby używać wartości historycznych elementów docelowych i predyktorów. Wynikiem jest model hybrydowy z cechami modelu szeregów czasowych i modelem czystej regresji. Ilości historyczne są dodatkowymi zmiennymi prognostykującymi w regresji i nazywamy je ilościami opóźnione. Kolejność opóźnienia odnosi się do tego, jak daleko jest znana wartość. Na przykład bieżąca wartość zamówienia-dwa opóźnienie celu dla naszego przykładu popytu na sok pomarańczowy jest obserwowanym zapotrzebowaniem na sok z dwóch dni temu.

Kolejną godną uwagi różnicą między modelami szeregów czasowych a modelami regresji jest sposób generowania prognoz. Modele szeregów czasowych są zwykle definiowane przez relacje rekursji i generują prognozy pojedynczo. Aby prognozować wiele okresów w przyszłości, iterują do horyzontu prognozy, przekazując poprzednie prognozy z powrotem do modelu, aby wygenerować następną prognozę z wyprzedzeniem zgodnie z potrzebami. Natomiast modele regresji są tak zwanymi bezpośrednimi prognostami , które generują wszystkie prognozy do horyzontu w jednym miejscu. Bezpośredni prognostycy mogą być preferowani do rekursywnych, ponieważ rekursywne modele złożone błędy przewidywania, gdy przekażą poprzednie prognozy z powrotem do modelu. Po włączeniu funkcji opóźnienia rozwiązanie AutoML wprowadza pewne ważne modyfikacje danych treningowych, dzięki czemu modele regresji mogą działać jako prognostycy bezpośredni. Aby uzyskać więcej informacji, zobacz artykuł dotyczący funkcji opóźnień.

Modele prognozowania w rozwiązaniu AutoML

W poniższej tabeli wymieniono modele prognozowania zaimplementowane w rozwiązaniu AutoML oraz kategorię, do której należą:

Modele szeregów czasowych Modele regresji
Naiwny, sezonowy naiwny, średnia sezonowa, średnia sezonowa, ARIMA(X), smoothing wykładniczy Linear SGD, LARS LASSO, Elastic Net, Prophet, K Najbliższych Sąsiadów, Drzewo decyzyjne, Las Losowy, Bardzo randomizowane drzewa, Gradient wzmocnione drzewa, LightGBM, XGBoost, TCNForecaster

Modele w każdej kategorii są wymienione w przybliżeniu w kolejności złożoności wzorców, które mogą uwzględniać, znanej również jako pojemność modelu. Model naiwny, który po prostu prognozuje ostatnią obserwowaną wartość, ma niską pojemność, podczas gdy sieć Czasowa konwolucyjna (TCNForecaster), głęboka sieć neuronowa z potencjalnie milionami parametrów dostrajania, ma wysoką pojemność.

Co ważne, rozwiązanie AutoML obejmuje również modele grupowe , które tworzą ważone kombinacje najlepszych modeli w celu zwiększenia dokładności. Na potrzeby prognozowania używamy miękkiego zespołu do głosowania, w którym kompozycja i wagi znajdują się za pośrednictwem algorytmu wyboru zespołu Caruana.

Uwaga

Istnieją dwa ważne zastrzeżenia dla zespołów modeli prognoz:

  1. TCN nie może być obecnie uwzględniona w zespołach.
  2. Rozwiązanie AutoML domyślnie wyłącza inną metodę zespołu stosu, która jest dołączana do domyślnych zadań regresji i klasyfikacji w rozwiązaniu AutoML. Zespół stosu pasuje do metamodelu na najlepszych prognozach modelu, aby znaleźć wagi zespołu. Odkryliśmy w wewnętrznym benchmarkingu, że ta strategia ma zwiększoną tendencję do dopasowania danych szeregów czasowych. Może to spowodować słabą uogólnienie, więc zespół stosu jest domyślnie wyłączony. Można go jednak włączyć w razie potrzeby w konfiguracji rozwiązania AutoML.

Jak rozwiązanie AutoML używa danych

Rozwiązanie AutoML akceptuje dane szeregów czasowych w formacie tabelarycznym, "szerokim"; oznacza to, że każda zmienna musi mieć własną odpowiednią kolumnę. Rozwiązanie AutoML wymaga, aby jedna z kolumn był osią czasu dla problemu z prognozowaniem. Ta kolumna musi być analizowalna w typie daty/godziny. Najprostszy zestaw danych szeregów czasowych składa się z kolumny czasowej i kolumny docelowej liczbowej. Element docelowy to zmienna, która zamierza przewidzieć w przyszłości. Poniżej przedstawiono przykład formatu w tym prostym przypadku:

timestamp ilość
2012-01-01 100
2012-01-02 97
2012-01-03 106
... ...
2013-12-31 347

W bardziej złożonych przypadkach dane mogą zawierać inne kolumny dopasowane do indeksu czasu.

timestamp SKU price Reklamowane ilość
2012-01-01 SOK1 3.5 0 100
2012-01-01 CHLEB3 5.76 0 47
2012-01-02 SOK1 3.5 0 97
2012-01-02 CHLEB3 5,5 1 68
... ... ... ... ...
2013-12-31 SOK1 3.75 0 347
2013-12-31 CHLEB3 5.7 0 94

W tym przykładzie istnieje jednostka SKU, cena detaliczna i flaga wskazująca, czy element został anonsowany oprócz znacznika czasu i ilości docelowej. W tym zestawie danych są najwyraźniej dwie serie — jedna dla jednostki SKU JUICE1 i jedna dla jednostki SKU BREAD3; kolumna SKU jest kolumną identyfikatora szeregów czasowych, ponieważ grupowanie według niej daje dwie grupy zawierające pojedynczą serię. Przed zamiataniem modeli rozwiązanie AutoML wykonuje podstawową walidację konfiguracji i danych wejściowych i dodaje funkcje zaprojektowane.

Wymagania dotyczące długości danych

Aby wytrenować model prognozowania, musisz mieć wystarczającą ilość danych historycznych. Ta ilość progowa różni się w zależności od konfiguracji trenowania. Jeśli podano dane weryfikacji, minimalna liczba obserwacji treningowych wymaganych na szereg czasowy jest podawana przez,

$T_{\text{weryfikacja użytkownika}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

gdzie $H$ to horyzont prognozy, $l_{\text{max}}$ to maksymalna kolejność opóźnień, a $s_{\text{window}}$ jest rozmiarem okna dla funkcji agregacji stopniowej. Jeśli używasz krzyżowej weryfikacji, minimalna liczba obserwacji wynosi,

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

gdzie $n_{\text{CV}}$ to liczba składanych krzyżowych i $n_{\text{step}}$ to rozmiar kroku CV lub przesunięcie między fałdami CV. Podstawową logiką tych formuł jest to, że zawsze należy mieć co najmniej horyzont obserwacji treningowych dla każdej serii czasowej, w tym niektóre wypełnienie dla opóźnień i podziałów krzyżowej walidacji. Aby uzyskać więcej informacji na temat krzyżowego sprawdzania poprawności na potrzeby prognozowania, zobacz wybór modelu prognozowania.

Brak obsługi danych

Modele szeregów czasowych rozwiązania AutoML wymagają regularnie rozmieszczonych obserwacji w czasie. W tym miejscu regularnie rozmieszczone są przypadki, takie jak obserwacje miesięczne lub roczne, w których liczba dni między obserwacjami może się różnić. Przed modelowaniem rozwiązanie AutoML musi upewnić się, że nie ma brakujących wartości serii i że obserwacje są regularne. W związku z tym istnieją dwa brakujące przypadki danych:

  • Brak wartości w niektórych komórkach w danych tabelarycznych
  • Brak wiersza , który odpowiada oczekiwanej obserwacji, biorąc pod uwagę częstotliwość szeregów czasowych

W pierwszym przypadku rozwiązanie AutoML imputuje brakujące wartości przy użyciu typowych, konfigurowalnych technik.

Przykład brakującego, oczekiwanego wiersza przedstawiono w poniższej tabeli:

timestamp ilość
2012-01-01 100
2012-01-03 106
2012-01-04 103
... ...
2013-12-31 347

Ta seria pozornie ma częstotliwość dzienną, ale nie ma obserwacji dla 2 stycznia 2012 roku. W takim przypadku rozwiązanie AutoML podejmie próbę wypełnienia danych przez dodanie nowego wiersza dla 2 stycznia 2012 r. Nowa wartość quantity dla kolumny i innych kolumn w danych zostanie następnie przypisana jak inne brakujące wartości. Oczywiście rozwiązanie AutoML musi znać częstotliwość serii, aby wypełnić luki w obserwacji w ten sposób. Rozwiązanie AutoML automatycznie wykrywa tę częstotliwość lub, opcjonalnie, użytkownik może podać ją w konfiguracji.

Metodę imputacji do wypełniania brakujących wartości można skonfigurować w danych wejściowych. Metody domyślne są wymienione w poniższej tabeli:

Typ kolumny Domyślna metoda imputation
Obiekt docelowy Wypełnienie do przodu (ostatnia obserwacja przeniesiona do przodu)
Funkcja liczbowa Mediana wartości

Brakujące wartości funkcji kategorii są obsługiwane podczas kodowania liczbowego, uwzględniając dodatkową kategorię odpowiadającą brakującej wartości. Imputation jest niejawny w tym przypadku.

Zautomatyzowana inżynieria cech

AutoML zazwyczaj dodaje nowe kolumny do danych użytkownika w celu zwiększenia dokładności modelowania. Funkcja zaprojektowana może obejmować następujące elementy:

Grupa funkcji Wartość domyślna/opcjonalna
Funkcje kalendarza pochodzące z indeksu czasu (na przykład dzień tygodnia) Wartość domyślna
Funkcje kategorii pochodzące z identyfikatorów szeregów czasowych Wartość domyślna
Kodowanie typów kategorii na typ liczbowy Wartość domyślna
Funkcje wskaźnika dla dni wolnych skojarzonych z danym krajem lub regionem Opcjonalnie
Opóźnienie ilości docelowej Opcjonalnie
Opóźnienie kolumn funkcji Opcjonalnie
Agregacje okien kroczących (na przykład średnia krocząca) ilości docelowej Opcjonalnie
Dekompozycja sezonowa (STL) Opcjonalnie

Cechowanie można skonfigurować za pomocą zestawu SDK rozwiązania AutoML za pomocą klasy ForecastingJob lub interfejsu internetowego usługi Azure Machine Edukacja Studio.

Wykrywanie i obsługa nieruchomych szeregów czasowych

Szereg czasowy, w którym średnia i wariancja zmieniają się w czasie, jest nazywana nieruchomą. Na przykład szeregi czasowe, które wykazują trendy stochastyczne, są nieruchome z natury. Aby to zwizualizować, na poniższej ilustracji przedstawiono serię, która zwykle rośnie. Teraz oblicz i porównaj wartości średnie (średnie) dla pierwszej i drugiej połowy serii. Czy są one takie same? Tutaj średnia serii w pierwszej połowie wykresu jest znacznie mniejsza niż w drugiej połowie. Fakt, że średnia serii zależy od interwału czasu, na którym patrzy, jest przykładem różnych momentów. Tutaj średnia serii jest pierwszą chwilą.

Diagram showing retail sales for a non-stationary time series.

Następnie przyjrzyjmy się poniższej ilustracji, która wykreśli oryginalną serię w pierwszych różnicach: $\Delta y_{t} = y_t — y_{t-1}$. Średnia serii jest w przybliżeniu stała w zakresie czasu, podczas gdy wariancja wydaje się być różna. W związku z tym jest to przykład serii czasów stacjonarnych pierwszego zamówienia.

Diagram showing retail sales for a weakly stationary time series.

Modele regresji automatycznego uczenia maszynowego nie mogą z natury radzić sobie z trendami stochastycznymi ani innymi znanymi problemami związanymi z nieruchomymi szeregami czasowymi. W rezultacie dokładność prognozy poza próbką może być niska, jeśli takie trendy są obecne.

Rozwiązanie AutoML automatycznie analizuje zestaw danych szeregów czasowych w celu określenia nieruchomości. W przypadku wykrycia nieruchomych szeregów czasowych rozwiązanie AutoML automatycznie stosuje przekształcenie różnicowe w celu ograniczenia wpływu nieruchomego zachowania.

Zamiatanie modeli

Po przygotowaniu danych z brakującą obsługą danych i inżynierią cech rozwiązanie AutoML zamiata zestaw modeli i hiperparametrów przy użyciu usługi rekomendacji modelu. Modele są klasyfikowane na podstawie metryk walidacji lub krzyżowej weryfikacji, a następnie opcjonalnie najlepsze modele mogą być używane w modelu zespołowym. Najlepszy model lub dowolny z wytrenowanych modeli można sprawdzić, pobrać lub wdrożyć w celu wygenerowania prognoz zgodnie z potrzebami. Aby uzyskać więcej informacji, zobacz artykuł zamiatanie i wybieranie modelu.

Grupowanie modeli

Jeśli zestaw danych zawiera więcej niż jeden szereg czasowy, jak w danym przykładzie danych, istnieje wiele sposobów modelowania tych danych. Na przykład możemy po prostu zgrupować według kolumn identyfikatorów szeregów czasowych i trenować niezależne modele dla każdej serii. Bardziej ogólnym podejściem jest podzielenie danych na grupy, które mogą zawierać wiele, prawdopodobnie powiązanych serii i wytrenować model na grupę. Domyślnie prognozowanie rozwiązania AutoML używa mieszanego podejścia do grupowania modeli. Modele szeregów czasowych, a także ARIMAX i Prorok, przypisz jedną serię do jednej grupy, a inne modele regresji przypisują wszystkie serie do jednej grupy. Poniższa tabela zawiera podsumowanie grupowania modeli w dwóch kategoriach: jeden do jednego i wiele do jednego:

Każda seria we własnej grupie (1:1) Wszystkie serie w pojedynczej grupie (N:1)
Naiwny, sezonowy naiwny, średnia sezonowa, średnia sezonowa, smoothing wykładniczy, ARIMA, ARIMAX, Prorok Linear SGD, LARS LASSO, Elastic Net, K najbliższych sąsiadów, drzewo decyzyjne, las losowy, bardzo randomizowane drzewa, gradient wzmocnione drzewa, LightGBM, XGBoost, TCNForecaster

Bardziej ogólne grupy modeli są możliwe za pośrednictwem rozwiązania Wiele modeli rozwiązania AutoML; zobacz nasz notes Wiele modeli — zautomatyzowane uczenie maszynowe.

Następne kroki