Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Czego nauczysz się:
- Jak rozwiązanie AutoML używa modeli szeregów czasowych i modeli regresji do prognozowania
- Jak rozwiązanie AutoML przygotowuje i tworzy cechy z danych
- Które modele prognozowania są dostępne i kiedy ich używać
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ć 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
Następne kroki: Po zrozumieniu tych metod dowiedz się, jak skonfigurować zadanie prognozowania lub dowiedzieć się , jak rozwiązanie AutoML wybiera najlepszy model.
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. Wiele innych czynników może mieć wpływ na przyszły popyt, taki jak cena, dzień tygodnia i okresy wakacji. 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, które udostępniasz, są znane w przyszłości, co najmniej do horyzontu prognozy.
Można również rozszerzyć modele regresji prognozowania rozwiązania AutoML, aby używać historycznych wartości 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 zwykle definiują modele szeregów czasowych, które generują prognozy pojedynczo. Aby prognozować wiele okresów w przyszłości, iterują do zakresu prognozy, przekazując poprzednie prognozy z powrotem do modelu, aby wygenerować następną jednookresową prognozę w razie potrzeby. 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 Azure 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ść.
Dowiedz się więcej o modelach uczenia głębokiego: Jeśli pracujesz z złożonymi wzorcami szeregów czasowych, zobacz Modele uczenia głębokiego (DNN) na potrzeby prognozowania w rozwiązaniu AutoML.
| 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ć zespołu miękkiego głosowania, w którym kompozycja i wagi są określone za pomocą Algorytmu Wyboru Zespołu Caruana.
Uwaga
Istnieją dwa ważne zastrzeżenia dla zespołów modeli prognoz:
- Obecnie TCN nie może być uwzględniany w składach zespołów.
- 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 nadmiernego dopasowania danych szeregów czasowych. Ten wynik może prowadzić do słabej uogólnialności, więc złożony model 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:
| sygnatura czasowa | 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:
| sygnatura czasowa | SKU | cena | 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 kolumnaidentyfikatora 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, potrzebujesz wystarczającej ilości danych historycznych. Wymagana ilość 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 rozpoczęciem procesu modelowania rozwiązanie AutoML gwarantuje, że nie brakuje wartości serii i że obserwacje są regularne.
Rozwiązanie AutoML obsługuje dwa typy brakujących danych:
- Brakujące wartości komórek: Brak wartości w niektórych komórkach w danych tabelarycznych
- Brakujące wiersze: Brak wiersza, który odpowiada oczekiwanej obserwacji, biorąc pod uwagę częstotliwość szeregów czasowych
Rozwiązanie AutoML automatycznie wykrywa i imputuje oba typy brakujących danych.
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:
| sygnatura czasowa | 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 możesz podać ją w konfiguracji.
Metodę imputacji można skonfigurować pod kątem podawania brakujących wartości 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 |
Rozwiązanie AutoML obsługuje brakujące wartości cech kategorii podczas kodowania liczbowego, uwzględniając inną kategorię odpowiadającą brakującej wartości. Imputation jest niejawny w tym przypadku.
Zautomatyzowana inżynieria cech
AutoML zazwyczaj dodaje nowe kolumny do danych 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 nonstationary. 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. W przypadku wykrycia niestacjonarnych szeregów czasowych rozwiązanie AutoML automatycznie stosuje przekształcenie różnicowe, aby złagodzić skutki zachowania niestacjonarnego.
Zamiatanie modeli
Po przygotowaniu danych z obsługą brakujących danych i inżynierią cech, AutoML przeszukuje zestaw modeli i hiperparametrów przy użyciu usługi rekomendacji modelu.
Modele są klasyfikowane na podstawie metryk walidacji lub krzyżowego sprawdzania poprawności. Opcjonalnie możesz użyć najlepszych modeli w modelu zespołowym. Możesz sprawdzić, pobrać lub wdrożyć najlepszy model lub dowolny z wytrenowanych modeli, aby w razie potrzeby wygenerować prognozy. 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
Gdy zestaw danych zawiera więcej niż jeden szereg czasowy, możesz modelować dane na różne sposoby. 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 zawierające wiele (prawdopodobnie powiązanych) serii i wytrenowanie modelu dla każdej grupy.
Domyślnie prognozowanie rozwiązania AutoML używa mieszanego podejścia do grupowania modeli. Modele szeregów czasowych, takie jak ARIMAX i Prophet, przypisują jedną serię do jednej grupy. 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
Aby uzyskać bardziej ogólne grupy modeli, można użyć wielu modeli w rozwiązaniu AutoML. Aby uzyskać więcej informacji, zobacz Wiele modeli — notes zautomatyzowanego uczenia maszynowego.