Funkce kalendáře pro prognózování časových řad v AutoML
Tento článek se zaměřuje na funkce založené na kalendáři, které AutoML vytvoří za účelem zvýšení přesnosti předpovědí regresních modelů. Vzhledem k tomu, že svátky mohou mít silný vliv na to, jak se modelovaný systém chová, čas před, během a po svátcích může ovlivnit vzory řad. Každá svátek vygeneruje okno nad existující datovou sadou, ke které může žák přiřadit efekt. To může být zvlášť užitečné ve scénářích, jako jsou svátky, které generují vysoké požadavky na konkrétní produkty. Další obecné informace o metodologii prognózování v AutoML najdete v článku s přehledem metod. Pokyny a příklady pro trénování modelů prognóz v AutoML najdete v našem článku věnovaném nastavení AutoML pro prognózování časových řad.
AutoML jako součást přípravy funkcí transformuje sloupce typu datetime poskytované v trénovacích datech na nové sloupce funkcí založených na kalendáři. Tyto funkce můžou pomoct regresním modelům učit se sezónní vzory v několika intervalech. AutoML může vždy vytvářet funkce kalendáře z časového indexu časové řady, protože se jedná o požadovaný sloupec v trénovacích datech. Funkce kalendáře se také skládají z jiných sloupců s typem datetime, pokud existují. Další informace o požadavcíchnach
AutoML považuje dvě kategorie funkcí kalendáře: standardní funkce založené výhradně na hodnotách data a času a funkcích svátků, které jsou specifické pro zemi nebo oblast světa. Tyto funkce si projdeme ve zbývající části článku.
Standardní funkce kalendáře
Následující tabulka ukazuje úplnou sadu standardních funkcí kalendáře AutoML spolu s ukázkovým výstupem. Příklad používá standardní YY-mm-dd %H-%m-%d
formát pro reprezentaci data a času.
Název funkce | Popis | Příklad výstupu pro 2011-01-01 00:25:30 |
---|---|---|
year |
Číselná funkce představující kalendářní rok | 2011 |
year_iso |
Představuje rok ISO definovaný v ISO 8601. Roky ISO začínají prvním týdnem roku, který má čtvrtek. Pokud je například 1. ledna pátek, začíná rok ISO 4. ledna. Roky ISO se mohou lišit od kalendářních roků. | 2010 |
half |
Funkce označující, jestli je datum v první nebo druhé polovině roku. Je to 1, pokud datum předchází 1. červenci a 2 jinak. | |
quarter |
Číselná funkce představující čtvrtletí daného data Přebírá hodnoty 1, 2, 3 nebo 4 představující první, druhé, třetí, čtvrté čtvrtletí kalendářního roku. | 0 |
month |
Číselná funkce představující kalendářní měsíc Přebírá hodnoty 1 až 12. | 0 |
month_lbl |
Řetězcová funkce představující název měsíce | Leden |
day |
Číselná funkce představující den v měsíci Přebírá hodnoty od 1 do 31. | 0 |
hour |
Číselná funkce představující hodinu dne Přebírá hodnoty 0 až 23. | 0 |
minute |
Číselná funkce představující minutu v hodině Přebírá hodnoty 0 až 59. | 25 |
second |
Číselná funkce představující sekundu daného data a času V případě, že je zadán pouze formát data, pak se předpokládá jako 0. Přebírá hodnoty 0 až 59. | 30 |
am_pm |
Číselná funkce označující, jestli je čas ráno nebo večer. Je to 0krát před 12:00 a 1x po 12:00. | 0 |
am_pm_lbl |
Řetězcová funkce označující, jestli je čas ráno nebo večer. | "am" |
hour12 |
Číselná funkce představující hodinu dne ve 12hodinovém formátu Vezme hodnoty 0 až 12 pro první polovinu dne a 1 až 11 pro druhou polovinu. | 0 |
wday |
Číselná funkce představující den v týdnu Přebírá hodnoty 0 až 6, kde 0 odpovídá pondělí. | 5 |
wday_lbl |
Řetězcová funkce představující název dne v týdnu | |
qday |
Číselná funkce představující den v rámci čtvrtletí Přebírá hodnoty 1 až 92. | 0 |
yday |
Číselná funkce představující den v roce V případě přestupného roku přebírá hodnoty 1 až 365 nebo 1 až 366. | 0 |
week |
Číselná funkce představující týden ISO definovaný v iso 8601. Týdny ISO vždy začínají v pondělí a končí v neděli. Trvá hodnoty 1 až 52 nebo 53 let, které mají 1. leden padající ve čtvrtek nebo pro přestupné roky, které mají 1. leden padající ve středu. | 52 |
Úplná sada standardních funkcí kalendáře se nemusí vytvářet ve všech případech. Vygenerovaná sada závisí na frekvenci časových řad a na tom, jestli trénovací data obsahují kromě indexu času i funkce data a času. Následující tabulka uvádí funkce vytvořené pro různé typy sloupců:
Účel sloupce | Funkce kalendáře |
---|---|
Časový index | Úplná sada minus funkce kalendáře, které mají vysokou korelaci s jinými funkcemi. Pokud je například frekvence časových řad denně, odeberou se všechny funkce s podrobnější frekvencí, než je denní doba, protože neposkytují užitečné informace. |
Jiný sloupec datetime | Redukovaná sada skládající se z Year , , DayOfYear QuarterOfYear WeekOfMonth DayOfWeek Day Month , , Hour , , Minute a .Second Pokud je sloupec datum bez času, Hour Minute bude a Second bude 0. |
Funkce svátků
AutoML může volitelně vytvářet funkce představující svátky z konkrétní země nebo oblasti. Tyto funkce jsou nakonfigurovány v AutoML pomocí parametru country_or_region_for_holidays
, který přijímá kód země ISO.
Poznámka:
Funkce svátků lze provádět pouze pro časové řady s denní frekvencí.
Následující tabulka shrnuje funkce svátků:
Název funkce | Popis |
---|---|
Holiday |
Řetězcová funkce, která určuje, jestli je datum státní/regionální svátky. Dny v určitém rozsahu svátků jsou také označené. |
isPaidTimeOff |
Binární funkce, která přebírá hodnotu 1, pokud je den "placeným volnou dovolenou" v dané zemi nebo oblasti. |
AutoML jako zdroj informací o svátcích používá Azure Open Datasets. Další informace najdete v dokumentaci PublicHolidays .
Pokud chcete lépe porozumět generování funkcí svátků, zvažte následující ukázková data:
Abychom pro tato data nastavili americké funkce svátků, nastavíme country_or_region_for_holiday
v nastavení prognózy hodnotu "USA", jak je znázorněno v následující ukázce kódu:
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'
)
Vygenerované funkce svátků vypadají jako následující výstup:
Všimněte si, že vygenerované funkce mají předponu _automl_
před názvy sloupců. AutoML obvykle používá tuto předponu k rozlišení vstupních funkcí od inženýrovaných funkcí.
Další kroky
- Přečtěte si další informace o tom, jak nastavit AutoML pro trénování modelu prognózování časových řad.
- Projděte si nejčastější dotazy k prognózování AutoML.
- Přečtěte si informace o opožděných funkcích prognóz AutoML.
- Přečtěte si, jak AutoML používá strojové učení k vytváření modelů prognózování.