ForecastingParameters Třída

Umožňuje spravovat parametry používané úlohami prognózování.

Dědičnost
builtins.object
ForecastingParameters

Konstruktor

ForecastingParameters(time_column_name: str | None = None, forecast_horizon: str | int = 1, time_series_id_column_names: str | List[str] | None = None, group_column_names: str | List[str] | None = None, target_lags: List[int] | int | str | None = None, feature_lags: str | None = None, target_rolling_window_size: str | int | None = None, holiday_country: str | None = None, seasonality: str | int | None = 'auto', country_or_region_for_holidays: str | None = None, use_stl: str | None = None, short_series_handling: bool = True, short_series_handling_configuration: str | None = 'auto', freq: str | None = None, target_aggregation_function: str | None = None, cv_step_size: str | int | None = 'auto', features_unknown_at_forecast_time: str | List[str] | None = None, validate_parameters: bool = True, _enable_future_regressors: bool = False, **kwargs: Any)

Parametry

time_column_name
str
výchozí hodnota: None

Název sloupce času. Tento parametr se vyžaduje při prognózování k určení sloupce datetime ve vstupních datech použitých pro sestavení časové řady a odvozování její frekvence.

forecast_horizon
int nebo str
výchozí hodnota: 1

Požadovaný maximální horizont prognózy v jednotkách frekvence časových řad. Výchozí hodnota je 1.

Jednotky jsou založené na časovém intervalu trénovacích dat, například měsíčně nebo týdně, které by měl prognózovat prognóza. Při prognózování typu úlohy je tento parametr povinný. Další informace o nastavení parametrů prognózy najdete v tématu Automatické trénování modelu prognózy časových řad.

time_series_id_column_names
str nebo list(str)
výchozí hodnota: None

Názvy sloupců, které se používají k seskupení časových období. Dá se použít k vytvoření více řad. Pokud nejsou definovány názvy sloupců id časové řady nebo zadané sloupce identifikátorů neidentifikují všechny řady v datové sadě, identifikátory časových řad se pro vaši datovou sadu automaticky vytvoří.

group_column_names
str nebo list(str)
výchozí hodnota: None
target_lags
int, str nebo list(int)
výchozí hodnota: None

Počet minulých období, která se mají zpožďovat od cílového sloupce Ve výchozím nastavení jsou prodlevy vypnuté.

Při prognózování tento parametr představuje počet řádků, které mají zpozdit cílové hodnoty na základě frekvence dat. Toto je reprezentováno jako seznam nebo jedno celé číslo. Prodleva by se měla použít, pokud se vztah mezi nezávislými proměnnými a závislými proměnnými ve výchozím nastavení neshoduje nebo koreluje. Pokud se například pokoušíte předpovědět poptávku po produktu, může poptávka v libovolném měsíci záviset na ceně konkrétních komodit před 3 měsíci. V tomto příkladu můžete chtít zpožďovat cíl (poptávku) o 3 měsíce, aby model trénoval na správné relaci. Další informace najdete v tématu Automatické trénování modelu prognózy časových řad.

Všimněte si automatické detekce cílových prodlev a velikosti posuvného okna. Podívejte se na odpovídající komentáře v oddílu posuvné okno. Další algoritmus používáme ke zjištění optimální cílové prodlevy a velikosti posuvných oken.

  1. Odhadnout pořadí maximální prodlevy pro výběr funkce zpětného pohledu. V našem případě je to počet období do následující intervalu frekvence data, tj. pokud je frekvence denní, bude to týden (7), pokud je to týden, bude to měsíc (4). Hodnoty vynásobené dvěma jsou největšími možnými hodnotami prodlev/posuvných oken. V našich příkladech se budeme zabývat pořadím maximální prodlevy 14 a 8).

  2. Vytvořte řadu bez sezóny přidáním komponent trendu a reziduí. Použije se v dalším kroku.

  3. Odhad funkce PACF – Částečná automatická korelace na data z (2) a vyhledejte body, kde je automatická korelace významná, tj. její absolutní hodnota je více než 1,96/square_root (hodnota maximální prodlevy), které odpovídají významnosti 95 %.

  4. Pokud jsou všechny body významné, považujeme to za silnou sezónnost a nevytváříme funkce zpětného pohledu.

  5. Hodnoty PACF prohledáme od začátku a hodnotu před první nevýznamnou automatickou korelací určíme prodlevu. Pokud první významný prvek (hodnota koreluje se sebou samým) následuje nevýznamný, bude prodleva 0 a funkce zpětného vyhledávání nebudeme používat.

feature_lags
str nebo None
výchozí hodnota: None

Příznak pro generování prodlev pro číselné funkce s automatickým nebo žádným.

target_rolling_window_size
int, str nebo None
výchozí hodnota: None

Počet minulých období použitých k vytvoření průměru posuvného okna cílového sloupce.

Při prognózování tento parametr představuje n historických období, která se mají použít ke generování předpokládaných hodnot, <= velikost trénovací sady. Pokud tento parametr vynecháte, n je úplná velikost trénovací sady. Tento parametr zadejte, pokud chcete při trénování modelu vzít v úvahu pouze určitou část historie. Pokud je nastavená hodnota auto, bude posuvné okno odhadnuto jako poslední hodnota, kde PACF je více než prahová hodnota významnosti. Podrobnosti najdete v části target_lags.

holiday_country
str nebo None
výchozí hodnota: None
seasonality
int, str nebo None
výchozí hodnota: auto

Nastavte sezónnost časových řad jako celočíselný násobek frekvence řady. Pokud je sezónnost nastavená na hodnotu "auto", bude odvozena. Pokud je nastavená hodnota Žádná, předpokládá se, že časová řada není sezónní, což odpovídá sezónnosti=1.

country_or_region_for_holidays
str nebo None
výchozí hodnota: None

Země nebo oblast, která se používá ke generování funkcí svátků. Měly by to být dvoumísmenné kódy země/oblasti iso 3166, například "US" nebo "GB".

use_stl
str nebo None
výchozí hodnota: None

Nakonfigurujte STL rozklad cílového sloupce časové řady. use_stl můžou mít tři hodnoty: None (výchozí) – žádný dekompozice stl, 'season' – generovat pouze komponentu season a season_trend – generovat komponenty řady i trendu.

short_series_handling
bool
výchozí hodnota: True

Nakonfigurujte zpracování krátkých řad pro úlohy prognózování.

short_series_handling_configuration
str nebo None
výchozí hodnota: auto

Parametr definující, jak má AutoML zpracovávat krátké časové řady.

Možné hodnoty: "auto" (výchozí), 'pad', 'drop' a None.

  • Automatické krátké řady budou polstrovány, pokud neexistují dlouhé řady, jinak budou krátké řady vyřazeny.
  • všechny krátké řady budou polstrovány.
  • všechny krátké řady budou vyřazeny".
  • Žádné krátké řady nebudou změněny. Pokud je nastavená hodnota pad, tabulka bude vyplněna nulami a prázdnými hodnotami regresorů a náhodnými hodnotami pro cíl se střední hodnotou cílovou hodnotou pro dané ID časové řady. Pokud je medián větší nebo roven nule, bude minimální polstrovaná hodnota oříznuta nulou. Vstup:

Date (Datum)

numeric_value

řetězec

Cíl

01. 01. 2020

23

green

55

Výstup za předpokladu, že minimální počet hodnot je čtyři:

Date (Datum)

numeric_value

řetězec

Cíl

2019-12-29

0

NA

55.1

2019-12-30

0

NA

55.6

2019-12-31

0

NA

54.5

01. 01. 2020

23

green

55

Poznámka: Máme dva parametry short_series_handling_configuration a starší short_series_handling. Když jsou oba parametry nastavené, synchronizujeme je, jak je znázorněno v následující tabulce (short_series_handling_configuration a short_series_handling pro stručnost jsou označeny jako handling_configuration a zpracování).

Zpracování

handling_configuration

výsledná manipulace

výsledné handling_configuration

Ano

auto

Ano

auto

Ano

Pad

Ano

auto

Ano

drop

Ano

auto

Ano

Žádné

Ne

Žádné

Ne

auto

Ne

Žádné

Ne

Pad

Ne

Žádné

Ne

drop

Ne

Žádné

Ne

Žádné

Ne

Žádné

freq
str nebo None
výchozí hodnota: None

Četnost prognóz.

Při prognózování tento parametr představuje období, ve kterém je prognóza požadovaná, například denně, týdně, ročně atd. Frekvence prognózy je ve výchozím nastavení frekvence datové sady. Volitelně ho můžete nastavit na větší (ale ne menší) než četnost datové sady. Agregujeme data a vygenerujeme výsledky s frekvencí prognózy. U denních dat můžete například nastavit denní, týdenní nebo měsíční frekvenci, ale ne každou hodinu. Frekvence musí být alias posunu pandas. Další informace najdete v dokumentaci k knihovně pandas: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

target_aggregation_function
str nebo None
výchozí hodnota: None

Funkce, která se má použít k agregaci cílového sloupce časové řady tak, aby odpovídala frekvenci zadané uživatelem. Pokud je target_aggregation_function nastaven, ale není nastavený parametr freq, vyvolá se chyba. Možné cílové agregační funkce jsou: "sum", "max", "min" a "střední".

  • Hodnoty cílového sloupce se agregují na základě zadané operace. Součet je obvykle vhodný pro většinu scénářů.

  • Číselné sloupce prediktoru v datech se agregují podle součtu, průměru, minimální hodnoty a maximální hodnoty. V důsledku toho automatizované strojové učení vygeneruje nové sloupce s příponou s názvem agregační funkce a použije vybranou agregační operaci.

  • U sloupců prediktoru kategorií se data agregují podle režimu, nejvýraznější kategorie v okně.

  • Sloupce predikce data se agregují podle minimální hodnoty, maximální hodnoty a režimu.

Frekvence

target_aggregation_function

Mechanismus opravy pravidelnosti údajů

Žádné (výchozí)

Žádné (výchozí)

Agregace se nepoužije. Pokud platnou frekvenci nelze určit, bude vyvolána chyba.

Nějaká hodnota

Žádné (výchozí)

Agregace se nepoužije. Pokud je počet datových bodů vyhovujících dané mřížce četnosti menší, odeberou se tyto body o 90 %, jinak dojde k chybě.

Žádné (výchozí)

Agregační funkce

Došlo k chybě týkající se chybějícího parametru frekvence.

Nějaká hodnota

Agregační funkce

Agregace na frekvenci pomocí funkce providedaggregation

cv_step_size
str, int nebo None
výchozí hodnota: auto

Počet období mezi origin_time jednoho přeložení životopisu a dalším přeložením. Pokud například n_step = 3 pro denní data, čas počátku každého záhybů bude od sebe tři dny.

validate_parameters
bool
výchozí hodnota: True

Nakonfigurujte ověření vstupních parametrů.

features_unknown_at_forecast_time
výchozí hodnota: None
_enable_future_regressors
výchozí hodnota: False

Metody

from_parameters_dict

Sestavení ForecastingParameters třídy ze diktu.

validate_parameters

Ověřte parametry ve třídě ForecastingParameters.

from_parameters_dict

Sestavení ForecastingParameters třídy ze diktu.

static from_parameters_dict(parameter_dict: Dict[str, Any], validate_params: bool, show_deprecate_warnings: bool | None = True) -> ForecastingParameters

Parametry

parameter_dict
Vyžadováno

Dikt obsahuje všechny parametry prognózy.

validate_params
Vyžadováno

Jestli ověříte vstupní parametr nebo ne.

show_deprecate_warnings
výchozí hodnota: True

Přepnutím zobrazíte upozornění na zastaralé parametry.

validate_parameters

Ověřte parametry ve třídě ForecastingParameters.

validate_parameters()

Atributy

country_or_region_for_holidays

Země nebo oblast, která se používá ke generování funkcí svátků. Mělo by se jednat o dvoumísmenný kód země/oblasti ISO 3166, například "USA" nebo "GB".

cv_step_size

Počet období mezi origin_time jednoho záhybu CV a dalším přehybem. Pokud například n_step = 3 pro denní data, čas počátku každého záhybů bude tři dny od sebe.

drop_column_names

Názvy sloupců, které se mají vynechat pro úlohy prognózy.

dropna

Nakonfigurujte dropna v datovém transformátoru časových období.

feature_lags

Příznak pro generování prodlev pro číselné funkce

features_unknown_at_forecast_time

Názvy sloupců funkcí, které jsou k dispozici pro trénování, ale nejsou v době prognózy nebo odvozování neznámé. Pokud není definován, předpokládá se, že všechny sloupce funkce jsou známy v době prognózy.

forecast_horizon

Požadovaný maximální horizont prognózy v jednotkách frekvence časových řad. Výchozí hodnota je 1. Jednotky jsou založené na časovém intervalu trénovacích dat, například měsíčně nebo týdně, které by měl prognózovat prognóza.

formatted_drop_column_names

Formátované názvy sloupců, které se mají vynechat pro úlohy prognózy.

formatted_group_column_names

formatted_target_lags

Formátovaný počet minulých období, která mají být zpožděna od cílového sloupce.

formatted_time_series_id_column_names

Názvy sloupců, které se používají k seskupení časových období. Dá se použít k vytvoření více řad. Pokud není definována time_series_id_column_names, předpokládá se, že datová sada je jednou časovou řadou.

formatted_unknown_features

Názvy sloupců funkcí, které jsou k dispozici pro trénování, ale nejsou v době prognózy nebo odvozování neznámé. Pokud není definován, předpokládá se, že všechny sloupce funkce jsou známy v době prognózy. Podporováno pouze v dnn/tcn. Když uživatel nic neurčuje, budoucí funkce se v dnn nepovolí. Pokud však poskytují prázdný seznam, budoucí funkce jsou povoleny a předpokládá se, že všechny sloupce funkcí jsou známé v době prognózy.

freq

Frekvence datové sady.

group_column_names

holiday_country

Země nebo oblast, která se používá ke generování funkcí svátků. Mělo by se jednat o dvoumísmenný kód země/oblasti ISO 3166, například "USA" nebo "GB".

overwrite_columns

Nakonfigurujte overwrite_columns v transformátoru dat časových érií.

seasonality

Sezónnost časových řad jako celočíselný násobek frekvence řady.

short_series_handling_configuration

Vrátit, pokud má být polstrováno krátké zrno.

target_aggregation_function

Vrátí cílovou agregační funkci.

target_lags

Počet minulých období, která se mají zpožďovat od cílového sloupce

target_rolling_window_size

time_column_name

Název sloupce času. Tento parametr se vyžaduje při prognózování k určení sloupce datetime ve vstupních datech použitých pro sestavení časové řady a odvozování její frekvence.

time_series_id_column_names

Názvy sloupců, které se používají k seskupení časových období. Dá se použít k vytvoření více řad. Pokud není definována time_series_id_column_names, předpokládá se, že datová sada je jednou časovou řadou.

transform_dictionary

Nakonfigurujte transform_dictionary v datovém transformátoru časových érií.

use_stl

Nakonfigurujte STL rozklad cílového sloupce časové řady. use_stl můžou mít tři hodnoty: None (výchozí) – žádný dekompozice stl, 'season' – generovat pouze komponentu season a season_trend – generovat komponenty řady i trendu.

DEFAULT_TIMESERIES_VALUE

DEFAULT_TIMESERIES_VALUE = {'_enable_future_regressors': False, 'cv_step_size': 'auto', 'feature_lags': None, 'features_unknown_at_forecast_time': None, 'forecast_horizon': 1, 'freq': None, 'max_horizon': 1, 'seasonality': 'auto', 'short_series_handling': True, 'short_series_handling_configuration': 'auto', 'target_aggregation_function': None, 'target_lags': None, 'target_rolling_window_size': None, 'use_stl': None}

DEPRECATED_DICT

DEPRECATED_DICT = {'country': 'country_or_region_for_holidays', 'country_or_region': 'country_or_region_for_holidays', 'grain_column_names': 'time_series_id_column_names', 'holiday_country': 'country_or_region_for_holidays', 'max_horizon': 'forecast_horizon'}

EMPTY_TIME_COLUMN_NAME

EMPTY_TIME_COLUMN_NAME = '_EMPTY_TIME_COLUMN_NAME'

MAX_LAG_LENGTH

MAX_LAG_LENGTH = 2000