Megosztás a következőn keresztül:


Naptárfunkciók idősor-előrejelzéshez az AutoML-ben

Ez a cikk az AutoML által a regressziós modellek előrejelzésének pontosságának növelése érdekében létrehozott naptáralapú funkciókkal foglalkozik. Mivel az ünnepnapok erős hatással lehetnek a modellezett rendszer viselkedésére, az ünnepek előtti, alatti és utáni idő torzíthatja a sorozat mintáit. Minden ünnepnap létrehoz egy ablakot a meglévő adathalmazon, amelyhez a tanuló effektust rendelhet. Ez különösen hasznos lehet olyan helyzetekben, mint az ünnepek, amelyek magas követelményeket támasztanak bizonyos termékek iránt. Az AutoML előrejelzési módszertanával kapcsolatos általánosabb információkért tekintse meg a metódusok áttekintését ismertető cikket . Az AutoML-beli betanítási előrejelzési modellekre vonatkozó utasításokat és példákat az AutoML idősor-előrejelzési cikkünkben találja.

A szolgáltatásfejlesztés részeként az AutoML a betanítási adatokban megadott dátum/idő típusú oszlopokat naptáralapú funkciók új oszlopaivá alakítja. Ezek a funkciók segíthetnek a regressziós modelleknek, hogy több lépésben tanulják meg a szezonális mintákat. Az AutoML mindig létrehozhat naptárfunkciókat az idősor időindexéből, mivel ez egy kötelező oszlop a betanítási adatokban. A naptárfunkciók más, dátum/idő típusú oszlopokból is készülnek, ha vannak ilyenek. Az adatkövetelményekkel kapcsolatos további információkért tekintse meg, hogyan használja az AutoML az adatútmutatót .

Az AutoML a naptárfunkciók két kategóriáját veszi figyelembe: a szabványos funkciókat, amelyek teljes egészében a dátum- és időértékeken, valamint az ünnepi funkciókon alapulnak, amelyek a világ egy országára vagy régiójára vonatkoznak. Ezeket a funkciókat a cikk hátralévő részében megyünk át.

Szokásos naptárfunkciók

Az alábbi táblázat az AutoML szabványos naptárfunkcióinak teljes készletét mutatja be egy példakimenettel együtt. A példa a szabványos formátumot használja a YY-mm-dd %H-%m-%d datetime ábrázoláshoz.

Funkció neve Description Példakimenet a következőhöz: 2011.01.01. 00:25:30
year A naptári évet jelképező numerikus funkció 2011
year_iso Az ISO 8601 szabványban meghatározott ISO-évet jelöli. Az ISO-évek az év első hetétől kezdődnek, amelynek csütörtökje van. Ha például január 1 péntek, az ISO-év január 4-én kezdődik. Az ISO-évek eltérhetnek a naptári évektől. 2010
half Funkció, amely azt jelzi, hogy a dátum az év első vagy második felében van-e. Ez 1, ha a dátum előtt július 1 és 2 egyébként.
quarter A megadott dátum negyedévét képviselő numerikus funkció. Az 1, 2, 3 vagy 4 értéket veszi fel, amely a naptári év első, második, harmadik, negyedik negyedévét jelöli. 1
month A naptári hónapot jelképező numerikus funkció. 1–12 értéket vesz fel. 1
month_lbl A hónap nevét jelző karakterlánc-funkció. "Január"
day A hónap napját jelképező numerikus funkció. 1 és 31 közötti értékeket vesz igénybe. 1
hour A nap óráját jelképező numerikus funkció. A 0–23 értéket veszi igénybe. 0
minute Numerikus funkció, amely egy órán belül a percet jelöli. A 0 és 59 között értékeket veszi fel. 25
second A megadott dátum/idő másodpercét jelölő numerikus funkció. Abban az esetben, ha csak a dátumformátum van megadva, akkor a rendszer 0-ként feltételezi. A 0 és 59 között értékeket veszi fel. 30
am_pm Numerikus funkció, amely azt jelzi, hogy az idő reggel vagy este van-e. 0, 12:00 előtt, 1 pedig 12:00 után. 0
am_pm_lbl Sztring funkció, amely azt jelzi, hogy az idő reggel vagy este van-e. 'am'
hour12 A nap óráját 12 órás órán belül ábrázoló numerikus funkció. A nap első felében a 0–12, a második felében pedig 1–11 értéket vesz fel. 0
wday A hét napját jelképező numerikus funkció. A 0–6 értéket veszi fel, ahol a 0 a hétfőnek felel meg. 5
wday_lbl A hét napjának nevét jelző karakterlánc-funkció.
qday A negyedéven belüli napot ábrázoló numerikus funkció. 1–92 értéket vesz fel. 1
yday Az év napját jelképező numerikus funkció. Szökőév esetén 1–365, szökőév esetén pedig 1–366 értéket vesz igénybe. 1
week Az ISO 8601-ben meghatározott ISO-hetet képviselő numerikus funkció. Az ISO-hetek mindig hétfőn kezdődnek, és vasárnap érnek véget. Az 1 és 52, illetve az 53 értéket veszi igénybe, ha a január 1- jén csütörtökre esik, vagy szökőévekre, amikor január 1-jén szerdán esik. 52

Előfordulhat, hogy a szokásos naptárfunkciók teljes készlete nem minden esetben jön létre. A létrehozott készlet az idősor gyakoriságától és attól függ, hogy a betanítási adatok az időindex mellett dátum-idő funkciókat is tartalmaznak-e. Az alábbi táblázat a különböző oszloptípusokhoz létrehozott funkciókat mutatja be:

Oszlop rendeltetése Naptárfunkciók
Időindex A teljes készlet mínusz olyan naptárfunkciók, amelyek magas korrelációval rendelkeznek más funkciókkal. Ha például az idősor gyakorisága napi, akkor a napinál részletesebb gyakorisággal rendelkező szolgáltatások törlődnek, mivel nem nyújtanak hasznos információkat.
Egyéb datetime oszlop Csökkentett készlet, amely Yeara következőből áll: , Month, Day, DayOfWeek, DayOfYear, QuarterOfYearHourWeekOfMonth, , Minute, és .Second Ha az oszlop egy idő nélküli dátum, Hour, Minuteés Second 0 lesz.

Ünnepi funkciók

Az AutoML igény szerint létrehozhat olyan funkciókat, amelyek egy adott országból vagy régióból származó ünnepnapokat jelölnek. Ezek a funkciók az AutoML-ben vannak konfigurálva az country_or_region_for_holidaysISO-országkódot elfogadó paraméterrel.

Megjegyzés

Ünnepi funkciók csak napi gyakorisággal végezhetők el idősorokhoz.

Az alábbi táblázat összefoglalja az ünnepi funkciókat:

Funkció neve Description
Holiday Sztring funkció, amely meghatározza, hogy egy dátum nemzeti/regionális ünnep-e. Az ünnep bizonyos tartományán belüli napokat is megjelöljük.
isPaidTimeOff Bináris funkció, amely 1 értéket vesz fel, ha a nap "fizetett szabadság" az adott országban vagy régióban.

Az AutoML az Azure Open Datasetst használja az ünnepi információk forrásaként. További információt a PublicHolidays dokumentációjában talál.

Az ünnepi szolgáltatások létrehozásának jobb megértéséhez vegye figyelembe az alábbi példaadatokat:

sample_data

Az adatok amerikai ünnepi funkcióinak létrehozásához az előrejelzési beállításokban az country_or_region_for_holiday "USA" értéket állítjuk be az alábbi kódmintában látható módon:

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'
)

A generált ünnepnapi funkciók a következő kimenethez hasonlóan néznek ki:

sample_data_output

Vegye figyelembe, hogy a létrehozott szolgáltatások előtagja _automl_ az oszlopnevekre van előtagként felfűzve. Az AutoML általában ezt az előtagot használja a bemeneti funkciók és a mérnöki funkciók megkülönböztetésére.

Következő lépések