Funkcje kalendarza prognozowania szeregów czasowych w rozwiązaniu AutoML
Ten artykuł koncentruje się na funkcjach opartych na kalendarzu tworzonych przez rozwiązanie AutoML w celu zwiększenia dokładności modeli regresji prognozowania. Ponieważ wakacje mogą mieć silny wpływ na to, jak działa modelowany system, czas przed, podczas i po wakacjach może stronniczy od wzorców serii. Każde święto generuje okno dla istniejącego zestawu danych, do którego osoba ucząca się może przypisać efekt. Może to być szczególnie przydatne w scenariuszach, takich jak święta, które generują wysokie wymagania dotyczące określonych produktów. Zobacz artykuł omówienie metod, aby uzyskać więcej ogólnych informacji na temat metodologii prognozowania w rozwiązaniu AutoML. 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.
W ramach inżynierii cech rozwiązanie AutoML przekształca kolumny typu data/godzina udostępniane w danych treningowych na nowe kolumny funkcji opartych na kalendarzu. Te funkcje mogą pomóc modelom regresji uczyć się wzorców sezonowych w kilku cyklach. Rozwiązanie AutoML zawsze może tworzyć funkcje kalendarza na podstawie indeksu czasu szeregów czasowych, ponieważ jest to wymagana kolumna w danych treningowych. Funkcje kalendarza są również tworzone z innych kolumn z typem daty/godziny, jeśli istnieją. Aby uzyskać więcej informacji na temat wymagań dotyczących danych, zapoznaj się z przewodnikiem dotyczącym korzystania z rozwiązania AutoML.
Rozwiązanie AutoML uwzględnia dwie kategorie funkcji kalendarza: standardowe funkcje oparte całkowicie na wartościach daty i godziny oraz funkcjach wakacji specyficznych dla kraju lub regionu świata. Omówimy te funkcje w pozostałej części artykułu.
Standardowe funkcje kalendarza
W poniższej tabeli przedstawiono pełny zestaw standardowych funkcji kalendarza rozwiązania AutoML wraz z przykładowymi danymi wyjściowymi. W przykładzie użyto standardowego YY-mm-dd %H-%m-%d
formatu reprezentacji daty/godziny.
Nazwa funkcji | opis | Przykładowe dane wyjściowe dla 2011-01-01 00:25:30 |
---|---|---|
year |
Funkcja liczbowa reprezentująca rok kalendarzowy | 2011 |
year_iso |
Reprezentuje rok ISO zdefiniowany w standardze ISO 8601. Lata ISO zaczynają się w pierwszym tygodniu roku, który ma czwartek. Jeśli na przykład 1 stycznia jest piątek, rok ISO rozpoczyna się 4 stycznia. Lata ISO mogą się różnić od lat kalendarzowych. | 2010 |
half |
Funkcja wskazująca, czy data przypada w pierwszej, czy drugiej połowie roku. Jest to 1, jeśli data jest wcześniejsza niż 1 lipca i 2 w przeciwnym razie. | |
quarter |
Funkcja liczbowa reprezentująca kwartał danej daty. Przyjmuje ona wartości 1, 2, 3 lub 4 reprezentujące pierwszy, drugi, trzeci, czwarty kwartał roku kalendarzowego. | 1 |
month |
Funkcja liczbowa reprezentująca miesiąc kalendarzowy. Przyjmuje wartości od 1 do 12. | 1 |
month_lbl |
Funkcja ciągu reprezentująca nazwę miesiąca. | "Styczeń" |
day |
Funkcja liczbowa reprezentująca dzień miesiąca. Pobiera wartości z zakresu od 1 do 31. | 1 |
hour |
Funkcja liczbowa reprezentująca godzinę dnia. Przyjmuje wartości od 0 do 23. | 0 |
minute |
Funkcja liczbowa reprezentująca minutę w ciągu godziny. Przyjmuje wartości od 0 do 59. | 25 |
second |
Funkcja liczbowa reprezentująca drugą z danej daty/godziny. W przypadku, gdy jest podany tylko format daty, zakłada się, że jest to 0. Przyjmuje wartości od 0 do 59. | 30 |
am_pm |
Funkcja liczbowa wskazująca, czy godzina jest rano, czy wieczorem. To 0 dla razy przed 12pm i 1 dla razy po 12PM. | 0 |
am_pm_lbl |
Funkcja ciągu wskazująca, czy godzina jest rano, czy wieczorem. | "am" |
hour12 |
Funkcja liczbowa reprezentująca godzinę dnia na zegarze 12-godzinnym. Przyjmuje wartości od 0 do 12 w pierwszej połowie dnia i od 1 do 11 w drugiej połowie. | 0 |
wday |
Funkcja liczbowa reprezentująca dzień tygodnia. Przyjmuje wartości od 0 do 6, gdzie 0 odpowiada poniedziałek. | 5 |
wday_lbl |
Funkcja ciągu reprezentująca nazwę dnia tygodnia. | |
qday |
Funkcja liczbowa reprezentująca dzień w kwartale. Przyjmuje wartości od 1 do 92. | 1 |
yday |
Funkcja liczbowa reprezentująca dzień roku. Przyjmuje wartości od 1 do 365 lub od 1 do 366 w przypadku roku przestępnego. | 1 |
week |
Funkcja liczbowa reprezentująca tydzień ISO zgodnie z definicją w standardze ISO 8601. Tygodnie ISO zawsze zaczynają się w poniedziałek i kończą się w niedzielę. Przyjmuje wartości od 1 do 52, lub 53 przez lata o 1 stycznia spada w czwartek lub przez lata przestępne o 1 stycznia spada w środę. | 52 |
Pełny zestaw standardowych funkcji kalendarza nie może być tworzony we wszystkich przypadkach. Wygenerowany zestaw zależy od częstotliwości szeregów czasowych i tego, czy dane szkoleniowe zawierają funkcje daty/godziny oprócz indeksu czasu. W poniższej tabeli przedstawiono funkcje utworzone dla różnych typów kolumn:
Cel kolumny | Funkcje kalendarza |
---|---|
Indeks czasu | Pełny zestaw funkcji minus kalendarz, które mają wysoką korelację z innymi funkcjami. Jeśli na przykład częstotliwość szeregów czasowych jest dzienna, wszystkie funkcje z bardziej szczegółową częstotliwością niż codziennie zostaną usunięte, ponieważ nie udostępniają przydatnych informacji. |
Inna kolumna data/godzina | Zredukowany zestaw składający się z Year , Month , QuarterOfYear DayOfWeek Day WeekOfMonth Hour DayOfYear Minute i .Second Jeśli kolumna jest datą bez godziny, Hour , Minute i Second będzie wynosić 0. |
Funkcje wakacji
Rozwiązanie AutoML może opcjonalnie tworzyć funkcje reprezentujące święta z określonego kraju lub regionu. Te funkcje są konfigurowane w rozwiązaniu AutoML przy użyciu parametru country_or_region_for_holidays
, który akceptuje kod kraju ISO.
Uwaga
Funkcje wakacji można wykonywać tylko dla szeregów czasowych z częstotliwością dzienną.
Poniższa tabela zawiera podsumowanie funkcji wakacji:
Nazwa funkcji | opis |
---|---|
Holiday |
Funkcja ciągu określająca, czy data jest święto narodowe/regionalne. Dni w ramach pewnego zakresu wakacji są również oznaczone. |
isPaidTimeOff |
Funkcja binarna, która przyjmuje wartość 1, jeśli dzień jest "płatnym urlopem czasowym" w danym kraju lub regionie. |
Rozwiązanie AutoML używa usługi Azure Open Datasets jako źródła informacji urlopowych. Aby uzyskać więcej informacji, zobacz dokumentację PublicHolidays .
Aby lepiej zrozumieć generowanie funkcji wakacji, rozważ następujące przykładowe dane:
Aby ustawić amerykańskie funkcje wakacji dla tych danych, ustawimy country_or_region_for_holiday
wartość "USA" w ustawieniach prognozy, jak pokazano w poniższym przykładzie kodu:
from azure.ai.ml import automl
# create a forcasting job
forecasting_job = automl.forecasting(
compute='test_cluster', # Name of single or multinode AML compute infrastructure created by user
experiment_name=exp_name, # name of experiment
training_data=sample_data,
target_column_name='demand',
primary_metric='NormalizedRootMeanSquaredError',
n_cross_validations=3,
enable_model_explainability=True
)
# set custom forecast settings
forecasting_job.set_forecast_settings(
time_column_name='timeStamp',
country_or_region_for_holidays='US'
)
Wygenerowane funkcje wakacji wyglądają podobnie do następujących danych wyjściowych:
Pamiętaj, że wygenerowane funkcje mają prefiks _automl_
poprzedzony nazwami kolumn. Rozwiązanie AutoML zwykle używa tego prefiksu do odróżnienia funkcji wejściowych od funkcji zaprojektowanych.
Następne kroki
- Dowiedz się więcej o sposobie konfigurowania rozwiązania AutoML do trenowania modelu prognozowania szeregów czasowych.
- Przejrzyj często zadawane pytania dotyczące prognozowania automatycznego uczenia maszynowego.
- Dowiedz się więcej o funkcjach prognozowania automatycznego uczenia maszynowego z opóźnieniem.
- Dowiedz się, jak rozwiązanie AutoML używa uczenia maszynowego do tworzenia modeli prognozowania.