Omówienie metod prognozowania w rozwiązaniu AutoML
W tym artykule opisano metody używane przez rozwiązanie AutoML w usłudze Azure Machine Learning do przygotowywania danych szeregów czasowych i tworzenia modeli prognozowania. Aby uzyskać instrukcje i przykłady dotyczące modeli prognozowania trenowania w rozwiązaniu AutoML, zobacz Konfigurowanie rozwiązania AutoML na potrzeby prognozowania szeregów czasowych.
Metody prognozowania w rozwiązaniu AutoML
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:
- Modele szeregów czasowych używające wartości historycznych ilości docelowej do przewidywania w przyszłości
- Regresja lub objaśnienie modeli używających zmiennych predyktora do prognozowania wartości celu
Załóżmy, że musisz prognozować dzienne zapotrzebowanie na konkretną markę soku pomarańczowego ze sklepu spożywczego. W przypadku wyrażenia niech $y_t$ reprezentuje zapotrzebowanie na tę markę w dniu $t$. Model szeregów czasowych przewiduje zapotrzebowanie na $t+1$ przy użyciu pewnej funkcji popytu historycznego z następującym wyrażeniem:
$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$
Funkcja $f$ często ma parametry, które można dostroić 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 przeszłym zapotrzebowaniu. Istnieje wiele innych czynników, które mogą wpływać na przyszłe zapotrzebowanie, takie jak cena, dzień tygodnia i okresy świąteczne. Rozważ model regresji, który używa tych zmiennych predyktora z następującym wyrażeniem:
$y = g(\text{price}, \text{dzień tygodnia}, \text{holiday})$
Ponownie funkcja $g$ ma zazwyczaj zestaw parametrów, w tym wartości, które zarządzają regularyzacji, które są melodiami automl przy użyciu poprzednich wartości zapotrzebowania i predyktorów. Pomijasz $t$ z wyrażenia, aby podkreślić, że model regresji używa wzorców korelacji między zmiennymi zdefiniowanymi sporowo w celu przewidywania. Aby przewidzieć $y_{t+1}$ z $g$, musisz wiedzieć, który dzień tygodnia odpowiada $t+1$, czy dzień jest świętem, a cena soku pomarańczowego w dniu $t +1$. Pierwsze dwie informacje są łatwe do zidentyfikowania przy użyciu kalendarza. Cena detaliczna jest często ustawiana z góry, 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 narzędzie tej regresji jest ograniczone przez to, jak daleko do przyszłości potrzebne są prognozy, nazywane również horyzontem prognozy i w jakim stopniu znasz 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 to dodatkowe zmienne predyktorowe w regresji określanej jako ilości 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 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. Relacje rekursji zazwyczaj definiują modele szeregów czasowych, które 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ą uważane za bezpośrednie prognostycy , które generują wszystkie prognozy do horyzontu w jednej próbie. Prognostycy bezpośredni mogą być preferowani do metod rekursywnych, ponieważ rekursywne modele przewidywania złożonego błędu podczas podawania poprzednich prognoz 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 bezpośredni prognostycy. Aby uzyskać więcej informacji, zobacz Funkcje opóźnienia prognozowania szeregów czasowych w rozwiązaniu AutoML.
Modele prognozowania w rozwiązaniu AutoML
Rozwiązanie AutoML w usłudze Machine Learning implementuje następujące modele prognozowania. Dla każdej kategorii modele 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 ostatnio obserwowaną wartość, ma niską pojemność, podczas gdy sieć czasowa (TCNForecaster), głęboka sieć neuronowa (DNN) z potencjalnie milionami parametrów dostrajania, ma wysoką pojemność.
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 |
Rozwiązanie AutoML obejmuje również modele grupowe , które tworzą ważone kombinacje najlepszych modeli w celu zwiększenia dokładności. Do prognozowania należy użyć miękkiego zespołu głosowania, w którym kompozycja i wagi znajdują się przy użyciu algorytmu wyboru zespołu Caruana.
Uwaga
Istnieją dwa ważne zastrzeżenia dla zespołów modeli prognoz:
- TCN nie może być obecnie uwzględniona w zespołach.
- Domyślnie rozwiązanie AutoML wyłącza metodę 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. Podczas wewnętrznego porównywania porównawczego ta strategia ma zwiększoną tendencję do dopasowania danych szeregów czasowych. Ten wynik może spowodować słabą uogólnienie, więc zespół stosu jest domyślnie wyłączony. Zespół można włączyć w konfiguracji rozwiązania AutoML zgodnie z potrzebami.
Jak rozwiązanie AutoML używa danych
Rozwiązanie AutoML akceptuje dane szeregów czasowych w formacie tabelarycznym "szeroki". Każda zmienna musi mieć własną odpowiednią kolumnę. Rozwiązanie AutoML wymaga, aby jedna kolumna był osią czasu dla problemu prognozowania. 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órą zamierzasz przewidzieć w przyszłości. W poniższej tabeli przedstawiono przykładowe wartości dla tego formatu:
timestamp | ilość |
---|---|
2012-01-01 | 100 |
2012-01-02 | 97 |
2012-01-03 | 106 |
... | ... |
2013-12-31 | 347 |
W bardziej złożonych przypadkach zestaw danych może 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 |
Drugi przykład obejmuje jednostkę SKU, cenę detaliczną i flagę wskazującą, czy element został anonsowany oprócz znacznika czasu i ilości docelowej. Drugi zestaw danych ujawnia dwie serie: jedną dla jednostki SKU JUICE1 i jedną dla jednostki SKU BREAD3. Kolumna SKU to kolumna identyfikatora szeregów czasowych, ponieważ grupowanie według tych wartości kolumn powoduje utworzenie dwóch grup, z których każda zawiera pojedynczą serię. Przed zamiataniem modelu 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 podasz dane weryfikacji, minimalna liczba obserwacji treningowych wymaganych na szereg czasowy jest wyrażona w następujący sposób:
$T_{\text{weryfikacja użytkownika}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
W tym wyrażeniu $H$ jest horyzontem prognozy, $l_{\text{max}}$ to maksymalna kolejność opóźnień, a $s_{\text{window}}$ jest rozmiarem okna dla funkcji agregacji stopniowej. W przypadku użycia krzyżowego sprawdzania poprawności minimalna liczba obserwacji jest wyrażona w następujący sposób:
$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
W tej wersji $n_{\text{CV}}$ jest liczbą składanych krzyżowych weryfikacji i $n_{\text{step}}$ jest rozmiarem kroku CV lub przesunięciem 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 prognozowania, zobacz Wybór modelu w rozwiązaniu AutoML.
Brak obsługi danych
Modele szeregów czasowych w rozwiązaniu AutoML wymagają regularnie rozmieszczonych obserwacji w czasie, w tym przypadków takich jak obserwacje miesięczne lub roczne, w których liczba dni między obserwacjami może się różnić. Przed zainicjowanym procesem modelowania rozwiązanie AutoML musi upewnić się, że nie ma brakujących wartości serii i że obserwacje są regularne. W rezultacie brakuje dwóch przypadków 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 technik konfigurowalnych. W poniższej tabeli przedstawiono przykład oczekiwanego wiersza, którego brakuje:
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 r. (2012-01-02). W takim przypadku rozwiązanie AutoML próbuje wypełnić dane, dodając nowy wiersz dla brakującej wartości. Nowa wartość quantity
kolumny i inne kolumny w danych są następnie przypisywane jak inne brakujące wartości. Aby wykonać ten proces, rozwiązanie AutoML musi rozpoznać częstotliwość serii, aby móc wypełnić luki obserwacji, jak pokazano w tym przypadku. Rozwiązanie AutoML automatycznie wykrywa tę częstotliwość lub, opcjonalnie, użytkownik może podać ją w konfiguracji.
Metoda imputacji do podawania brakujących wartości można skonfigurować w danych wejściowych. W poniższej tabeli wymieniono metody domyślne:
Typ kolumny | Domyślna metoda imputacji |
---|---|
Obiekt docelowy | Wypełnienie do przodu (ostatnia obserwacja przeniesiona do przodu) |
Funkcja liczbowa | Mediana wartości |
Brakujące wartości cech kategorii są obsługiwane podczas kodowania liczbowego przez dołączenie innej kategorii, która odpowiada 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. Funkcje zaprojektowane mogą zawierać elementy domyślne lub opcjonalne.
Domyślne funkcje inżynierów:
- Funkcje kalendarza pochodzące z indeksu czasu, takie jak dzień tygodnia
- Funkcje kategorii pochodzące z identyfikatorów szeregów czasowych
- Kodowanie typów kategorii na typ liczbowy
Opcjonalne funkcje inżynierów:
- Funkcje wskaźnika dla dni wolnych skojarzonych z danym regionem
- Opóźnienie ilości docelowej
- Opóźnienie kolumn funkcji
- Agregacje okien kroczących, takie jak średnia krocząca, ilość docelowa
- Dekompozycja sezonowa ((dekompozycja sezonowa i trendowa przy użyciu loess (STL))
Cechowanie można skonfigurować z poziomu zestawu AUTOML SDK przy użyciu klasy ForecastingJob lub interfejsu internetowego usługi Azure Machine Learning Studio.
Wykrywanie i obsługa niestacjonarnych szeregów czasowych
Szereg czasowy, w którym średnia i wariancja zmieniają się w czasie, jest nazywana nieruchomą. Szeregi czasowe, które wykazują trendy stochastyczne, są nonstationary z natury.
Na poniższej ilustracji przedstawiono wizualizację dla tego scenariusza. Wykres kreśli serię, która zwykle rośnie. Jeśli obliczasz i porównujesz średnie (średnie) wartości dla pierwszej i drugiej połowy serii, możesz zidentyfikować różnice. Średnia serii w pierwszej połowie wykresu jest mniejsza niż średnia w drugiej połowie. Fakt, że średnia serii zależy od interwału czasu w przeglądzie, jest przykładem różnych momentów czasu. W tym scenariuszu średnia serii jest pierwszą chwilą.
Następny obraz przedstawia wykres, który 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 tym scenariuszu przedstawiono przykład serii czasów stacjonarnych pierwszej kolejności:
Modele regresji automatycznego uczenia maszynowego nie mogą z natury radzić sobie z trendami stochastycznymi ani innymi znanymi problemami związanymi z niestacjonarnymi szeregami czasowymi. W rezultacie dokładność prognozy poza próbą może być niska, gdy takie trendy są obecne.
Rozwiązanie AutoML automatycznie analizuje zestaw danych szeregów czasowych w celu określenia jego poziomu lub stacjonowania. Po wykryciu niestacjonarnych szeregów czasowych rozwiązanie AutoML automatycznie stosuje przekształcenie różnicowe w celu ograniczenia skutków zachowania niestąpijącego.
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 Model sweeping and selection for forecasting in AutoML (Zamiatanie modeli i wybór do prognozowania w rozwiązaniu AutoML).
Grupowanie modeli
Jeśli zestaw danych zawiera więcej niż jeden szereg czasowy, istnieje wiele sposobów modelowania danych. Dane można grupować 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.
Oto jak każdy typ modelu używa grup:
Każda seria w oddzielnej grupie (1:1): Naiwne, Sezonowe, Średnie, Średnia sezonowa, Smoothing wykładnicza, ARIMA, ARIMAX, Prorok
Wszystkie serie w tej samej grupie (N:1): Liniowy 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 przy użyciu wielu modeli rozwiązania w rozwiązaniu AutoML. Aby uzyskać więcej informacji, zobacz Wiele modeli — notes zautomatyzowanego uczenia maszynowego.