Udostępnij za pośrednictwem


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 zachowuje się modelowany system, czas przed, w czasie i po wakacjach może odchylić wzorce 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 automatycznego uczenia maszynowego 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, zobacz , jak rozwiązanie AutoML korzysta z przewodnika dotyczącego danych .

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 zautomatyzowanego uczenia maszynowego 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 zgodnie z definicją 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ą różnić się 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, przyjmuje 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. Jest 0 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 12-godzinnym zegarze. 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 wartość 0 odpowiada poniedziałkowi. 5
wday_lbl Funkcja ciągu reprezentująca nazwę dnia tygodnia.
qday Funkcja liczbowa reprezentująca dzień w ciągu kwartału. 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ę. Trwa to wartości od 1 do 52, lub 53 dla lat 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 treningowe 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 kalendarza, które mają wysoką korelację z innymi funkcjami. Jeśli na przykład częstotliwość szeregów czasowych jest codziennie, wszystkie funkcje z bardziej szczegółową częstotliwością niż codziennie zostaną usunięte, ponieważ nie dostarczają przydatnych informacji.
Inna kolumna data/godzina Zredukowany zestaw składający się z Year, Month, , DayDayOfWeekDayOfYearQuarterOfYear, HourWeekOfMonthMinute, i .Second Jeśli kolumna jest datą bez godziny, Hour, Minutei Second będzie wynosić 0.

Funkcje wakacji

Rozwiązanie AutoML może opcjonalnie tworzyć funkcje reprezentujące dni wolne od pracy w określonym kraju lub regionie. 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 o wakacjach. Aby uzyskać więcej informacji, zobacz dokumentację PublicHolidays .

Aby lepiej zrozumieć generowanie funkcji wakacji, rozważ następujące przykładowe dane:

sample_data

Aby ustawić amerykańskie funkcje wakacji dla tych danych, ustawimy wartość country_or_region_for_holiday "US" 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:

sample_data_output

Pamiętaj, że wygenerowane funkcje mają prefiks _automl_ poprzedzony nazwami kolumn. Rozwiązanie AutoML zwykle używa tego prefiksu do odróżnienia cech wejściowych od cech zaprojektowanych.

Następne kroki