ForecastingParameters Klasa

Zarządzanie parametrami używanymi przez zadania prognozowania.

Dziedziczenie
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
wartość domyślna: None

Nazwa kolumny czasu. Ten parametr jest wymagany podczas prognozowania w celu określenia kolumny datetime w danych wejściowych używanych do tworzenia szeregów czasowych i wnioskowania jego częstotliwości.

forecast_horizon
int lub str
wartość domyślna: 1

Żądany maksymalny horyzont prognozy w jednostkach częstotliwości szeregów czasowych. Wartość domyślna to 1.

Jednostki są oparte na interwale czasu danych treningowych, np. miesięcznych, cotygodniowych, które prognostyk powinien przewidzieć. Gdy typ zadania jest prognozowany, ten parametr jest wymagany. Aby uzyskać więcej informacji na temat ustawiania parametrów prognozowania, zobacz Auto-train a time-series forecast model (Automatyczne trenowanie modelu prognozy szeregów czasowych).

time_series_id_column_names
str lub list(str)
wartość domyślna: None

Nazwy kolumn używanych do grupowania przedziałów czasu. Może służyć do tworzenia wielu serii. Jeśli nazwy kolumn identyfikatorów szeregów czasowych nie są zdefiniowane lub określone kolumny identyfikatorów nie identyfikują wszystkich serii w zestawie danych, identyfikatory szeregów czasowych zostaną automatycznie utworzone dla zestawu danych.

group_column_names
str lub list(str)
wartość domyślna: None
target_lags
int, str lub list(int)
wartość domyślna: None

Liczba poprzednich okresów do opóźnienia z kolumny docelowej. Domyślnie opóźnienia są wyłączone.

Podczas prognozowania ten parametr reprezentuje liczbę wierszy do opóźnienia wartości docelowych na podstawie częstotliwości danych. Jest to reprezentowane jako lista lub pojedyncza liczba całkowita. Opóźnienie powinno być używane, gdy relacja między zmiennymi niezależnymi i zmienną zależną nie jest domyślnie zgodna ani skorelowana. Na przykład podczas próby prognozowania popytu na produkt popyt w dowolnym miesiącu może zależeć od ceny określonych towarów 3 miesiące wcześniej. W tym przykładzie możesz chcieć negatywnie opóźnić wartość docelową (zapotrzebowanie) o 3 miesiące, aby model trenował w odpowiedniej relacji. Aby uzyskać więcej informacji, zobacz Auto-train a time-series forecast model (Automatyczne trenowanie modelu prognozy szeregów czasowych).

Uwaga dotycząca automatycznego wykrywania opóźnień docelowych i rozmiaru okna kroczącego. Zapoznaj się z odpowiednimi komentarzami w sekcji okna kroczącego. Używamy następnego algorytmu do wykrywania optymalnego opóźnienia docelowego i rozmiaru okna kroczącego.

  1. Szacowanie maksymalnej kolejności opóźnień dla zaznaczenia funkcji wyszukiwania wstecz. W naszym przypadku jest to liczba okresów do poziomu szczegółowości częstotliwości następnej daty, tj. jeśli częstotliwość jest codziennie, będzie to tydzień (7), jeśli jest to tydzień, będzie to miesiąc (4). Te wartości pomnożone przez dwa są największą możliwą wartością opóźnień/okien kroczących. W naszych przykładach rozważymy maksymalną kolejność opóźnień odpowiednio 14 i 8).

  2. Utwórz serię zde sezonyzowaną przez dodanie trendu i składników reszt. Będzie to używane w następnym kroku.

  3. Szacuj funkcję PACF — częściowa automatyczna korelacja danych z (2) i wyszukaj punkty, w których automatyczna korelacja jest znacząca, tj. jej wartość bezwzględna jest większa niż 1,96/square_root (wartość maksymalnego opóźnienia), która odpowiada istotności 95%.

  4. Jeśli wszystkie punkty są istotne, uważamy, że jest to silna sezonowość i nie tworzymy funkcji wstecz.

  5. Skanujemy wartości PACF od początku, a wartość przed pierwszą nieistotną automatyczną korelacją wyznaczy opóźnienie. Jeśli pierwszy znaczący element (wartość jest skorelowana z samym sobą), następuje nieznaczne, opóźnienie będzie równe 0 i nie będziemy używać funkcji wstecz.

feature_lags
str lub None
wartość domyślna: None

Flaga generowania opóźnień dla funkcji liczbowych z wartością "auto" lub brakiem.

target_rolling_window_size
int, str lub None
wartość domyślna: None

Liczba poprzednich okresów użytych do utworzenia średniej okna kroczącego kolumny docelowej.

Podczas prognozowania ten parametr reprezentuje n okresów historycznych do użycia do generowania wartości prognozowanych, <= rozmiar zestawu treningowego. Jeśli pominięto, n jest pełnym rozmiarem zestawu treningowego. Określ ten parametr, jeśli chcesz wziąć pod uwagę tylko określoną ilość historii podczas trenowania modelu. Jeśli zostanie ustawiona wartość "auto", okno kroczące będzie szacowane jako ostatnia wartość, w której wartość PACF jest większa niż próg istotności. Aby uzyskać szczegółowe informacje, zobacz sekcję target_lags.

holiday_country
str lub None
wartość domyślna: None
seasonality
int, str lub None
wartość domyślna: auto

Ustaw sezonowość szeregów czasowych jako liczbę całkowitą częstotliwości serii. Jeśli sezonowość jest ustawiona na wartość "auto", zostanie ona wywnioskowana. Jeśli jest ustawiona wartość Brak, przyjmuje się, że szereg czasowy jest niesezonowy, co jest równoważne sezonowości =1.

country_or_region_for_holidays
str lub None
wartość domyślna: None

Kraj/region używany do generowania funkcji wakacji. Powinny to być dwuliterowe kody kraju/regionu ISO 3166, na przykład "USA" lub "GB".

use_stl
str lub None
wartość domyślna: None

Skonfiguruj dekompozycję STL kolumny docelowej szeregów czasowych. use_stl może przyjmować trzy wartości: Brak (wartość domyślna) — brak dekompozycji stl, "season" — tylko generuj składnik sezonu i season_trend — generuje zarówno składniki sezonu, jak i trendu.

short_series_handling
bool
wartość domyślna: True

Konfigurowanie obsługi serii krótkiej na potrzeby zadań prognozowania.

short_series_handling_configuration
str lub None
wartość domyślna: auto

Parametr definiujący sposób obsługi krótkich szeregów czasowych przez rozwiązanie AutoML.

Możliwe wartości: "auto" (ustawienie domyślne), "pad", "drop" i None.

  • automatyczna seria krótka zostanie dopełniona, jeśli nie ma długiej serii, w przeciwnym razie seria krótka zostanie porzucona.
  • pad wszystkie krótkie serie zostaną wypełnione.
  • upuść wszystkie serie krótkie zostaną porzucone".
  • Żadna z krótkich serii nie zostanie zmodyfikowana. Jeśli zostanie ustawiona wartość "pad", tabela zostanie dopełniona zerami i pustymi wartościami dla regresorów i wartości losowych dla wartości docelowej z medianą wartości docelowej równej wartości docelowej dla danego identyfikatora szeregów czasowych. Jeśli mediana jest większa lub równa zero, minimalna dopełniona wartość zostanie obcięta przez zero. Dane wejściowe:

Data

numeric_value

ciąg

Docelowego

2020-01-01

23

green

55

Dane wyjściowe przy założeniu, że minimalna liczba wartości to cztery:

Data

numeric_value

ciąg

Docelowego

2019-12-29

0

NA

55.1

2019-12-30

0

NA

55.6

2019-12-31

0

NA

54.5

2020-01-01

23

green

55

Uwaga: Mamy dwa parametry short_series_handling_configuration i starsze short_series_handling. Po ustawieniu obu parametrów są one synchronizowane, jak pokazano w poniższej tabeli (short_series_handling_configuration i short_series_handling dla zwięzłości są oznaczone odpowiednio jako handling_configuration i obsługa).

Obsługi

handling_configuration

obsługa wynikowa

wynikowe handling_configuration

Prawda

auto

Prawda

auto

Prawda

Pad

Prawda

auto

Prawda

drop

Prawda

auto

Prawda

Brak

Fałsz

Brak

Fałsz

auto

Fałsz

Brak

Fałsz

Pad

Fałsz

Brak

Fałsz

drop

Fałsz

Brak

Fałsz

Brak

Fałsz

Brak

freq
str lub None
wartość domyślna: None

Częstotliwość prognozowania.

Podczas prognozowania ten parametr reprezentuje okres, z którym jest wymagana prognoza, na przykład codziennie, co tydzień, co rok itp. Częstotliwość prognozy jest domyślnie częstotliwością zestawu danych. Opcjonalnie można ustawić ją na większą (ale nie mniejszą) niż częstotliwość zestawu danych. Zagregujemy dane i wygenerujemy wyniki z częstotliwością prognozy. Na przykład w przypadku danych dziennych można ustawić częstotliwość na codziennie, co tydzień lub co miesiąc, ale nie godzinowo. Częstotliwość musi być aliasem przesunięcia biblioteki pandas. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją biblioteki pandas: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

target_aggregation_function
str lub None
wartość domyślna: None

Funkcja używana do agregowania kolumny docelowej szeregów czasowych w celu zachowania zgodności z określoną częstotliwością użytkownika. Jeśli target_aggregation_function jest ustawiona, ale parametr freq nie jest ustawiony, zostanie zgłoszony błąd. Możliwe funkcje agregacji docelowej to: "sum", "max", "min" i "mean".

  • Wartości kolumny docelowej są agregowane na podstawie określonej operacji. Zazwyczaj suma jest odpowiednia dla większości scenariuszy.

  • Kolumny predyktora liczbowego w danych są agregowane według sumy, średniej, wartości minimalnej i wartości maksymalnej. W rezultacie zautomatyzowane uczenie maszynowe generuje nowe kolumny z sufiksem nazwy funkcji agregacji i stosuje wybraną operację agregacji.

  • W przypadku kolumn predyktora kategorycznego dane są agregowane według trybu, najbardziej widocznej kategorii w oknie.

  • Kolumny predyktora dat są agregowane według wartości minimalnej, maksymalnej wartości i trybu.

Freq

target_aggregation_function

Mechanizm naprawiania regularności danych

Brak (wartość domyślna)

Brak (wartość domyślna)

Agregacja nie jest stosowana. Jeśli prawidłowa częstotliwość nie może zostać określona, zostanie zgłoszony błąd.

Niektóre wartości

Brak (wartość domyślna)

Agregacja nie jest stosowana. Jeśli liczba punktów danych zgodnych z daną siatką częstotliwości jest mniejsza, zostanie usunięta 90%, w przeciwnym razie zostanie zgłoszony błąd.

Brak (wartość domyślna)

Funkcja agregacji

Zgłoszony błąd dotyczący brakujących parametrów częstotliwości.

Niektóre wartości

Funkcja agregacji

Agregowanie do częstotliwości przy użyciu funkcji providedaggregation.

cv_step_size
str, int lub None
wartość domyślna: auto

Liczba krosek między origin_time jednego składania CV a następną fałdą. Jeśli na przykład n_step = 3 dla danych dziennych, czas pochodzenia każdej krotnie będzie wynosić trzy dni od siebie.

validate_parameters
bool
wartość domyślna: True

Skonfiguruj do sprawdzania poprawności parametrów wejściowych.

features_unknown_at_forecast_time
wartość domyślna: None
_enable_future_regressors
wartość domyślna: False

Metody

from_parameters_dict

Konstruowanie klasy ForecastingParameters z dyktu.

validate_parameters

Zweryfikuj parametry w klasie ForecastingParameters.

from_parameters_dict

Konstruowanie klasy ForecastingParameters z dyktu.

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

Parametry

parameter_dict
Wymagane

Dykt zawiera wszystkie parametry prognozowania.

validate_params
Wymagane

Niezależnie od tego, czy weryfikują parametr wejściowy, czy nie.

show_deprecate_warnings
wartość domyślna: True

Przełącz się, aby wyświetlić ostrzeżenie o przestarzałych parametrach.

validate_parameters

Zweryfikuj parametry w klasie ForecastingParameters.

validate_parameters()

Atrybuty

country_or_region_for_holidays

Kraj/region używany do generowania funkcji wakacji. Powinny to być dwuliterowe kody kraju/regionu ISO 3166, na przykład "USA" lub "GB".

cv_step_size

Liczba krot między origin_time jednej krotnie CV a następną krotą. Na przykład jeśli n_step = 3 dla danych dziennych, czas pochodzenia dla każdej krotnie będzie wynosić trzy dni od siebie.

drop_column_names

Nazwy kolumn do porzucania dla zadań prognozowania.

dropna

Skonfiguruj funkcję dropna w funkcji przekształcania danych w czasie.

feature_lags

Flaga generowania opóźnień dla funkcji liczbowych.

features_unknown_at_forecast_time

Nazwy kolumn funkcji, które są dostępne do trenowania, ale nieznane w czasie prognozowania/wnioskowania. Jeśli nie jest to zdefiniowane, zakłada się, że wszystkie kolumny funkcji są znane w czasie prognozy.

forecast_horizon

Żądany maksymalny horyzont prognozy w jednostkach częstotliwości szeregów czasowych. Wartość domyślna to 1. Jednostki są oparte na interwale czasu danych treningowych, np. miesięcznych, cotygodniowych, które prognostyk powinien przewidzieć.

formatted_drop_column_names

Sformatowane nazwy kolumn do upuszczania dla zadań prognozowania.

formatted_group_column_names

formatted_target_lags

Sformatowana liczba poprzednich okresów do opóźnienia z kolumny docelowej.

formatted_time_series_id_column_names

Nazwy kolumn używanych do grupowania przedziałów czasu. Może służyć do tworzenia wielu serii. Jeśli time_series_id_column_names nie jest zdefiniowana, zakłada się, że zestaw danych jest jednym szeregem czasowym.

formatted_unknown_features

Nazwy kolumn funkcji, które są dostępne do trenowania, ale nieznane w czasie prognozowania/wnioskowania. Jeśli nie jest to zdefiniowane, zakłada się, że wszystkie kolumny funkcji są znane w czasie prognozy. Obsługiwane tylko w dnn/tcn. Jeśli użytkownik nie określa niczego, przyszłe funkcje nie są włączone w dnn. Jeśli jednak udostępniają pustą listę, przyszłe funkcje są włączone, a wszystkie kolumny funkcji są znane w czasie prognozy.

freq

Częstotliwość zestawu danych.

group_column_names

holiday_country

Kraj/region używany do generowania funkcji wakacji. Powinny to być dwuliterowe kody kraju/regionu ISO 3166, na przykład "USA" lub "GB".

overwrite_columns

Skonfiguruj overwrite_columns w funkcji przekształcania danych w czasie.

seasonality

Sezonowość szeregów czasowych jako liczba całkowita wielokrotności częstotliwości serii.

short_series_handling_configuration

Zwracaj, jeśli krótkie ziarno powinno być dopełnione.

target_aggregation_function

Zwróć docelową funkcję agregacji.

target_lags

Liczba poprzednich okresów do opóźnienia z kolumny docelowej.

target_rolling_window_size

time_column_name

Nazwa kolumny czasu. Ten parametr jest wymagany podczas prognozowania w celu określenia kolumny datetime w danych wejściowych używanych do tworzenia szeregów czasowych i wnioskowania jego częstotliwości.

time_series_id_column_names

Nazwy kolumn używanych do grupowania przedziałów czasu. Może służyć do tworzenia wielu serii. Jeśli time_series_id_column_names nie jest zdefiniowana, zakłada się, że zestaw danych jest jednym szeregem czasowym.

transform_dictionary

Skonfiguruj transform_dictionary w funkcji przekształcania danych w czasie.

use_stl

Skonfiguruj dekompozycję STL kolumny docelowej szeregów czasowych. use_stl może przyjmować trzy wartości: Brak (wartość domyślna) — brak dekompozycji stl, "season" — tylko generuj składnik sezonu i season_trend — generuje zarówno składniki sezonu, jak 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