ForecastingParameters Класс

Управление параметрами, используемыми задачами прогнозирования.

Наследование
builtins.object
ForecastingParameters

Конструктор

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)

Параметры

time_column_name
str
значение по умолчанию: None

Имя столбца времени. Это параметр требуется при прогнозировании, чтобы задать столбец даты и времени во входных данных, используемых для создания временного ряда и определения его периодичности.

forecast_horizon
int или str
значение по умолчанию: 1

Максимальный требуемый горизонт прогнозирования в единицах периодичности временных рядов. Значение по умолчанию — 1.

Единицы измерения определяются на основе интервала времени данных обучения, например, месяц или неделя, на который следует составить прогноз. Если тип задачи — прогнозирование, этот параметр является обязательным. Дополнительные сведения о настройке параметров прогнозирования приведены в статье Автоматизированное обучение прогнозной модели временных рядов.

time_series_id_column_names
str или list(str)
значение по умолчанию: None

Имена столбцов, используемых для группирования временных рядов. Можно использовать для создания нескольких рядов. Если имена столбцов идентификаторов временных рядов не заданы или если указанные столбцы идентификаторов не определяют все ряды в наборе данных, то идентификаторы временных рядов для набора данных будут создаваться автоматически.

group_column_names
str или list(str)
значение по умолчанию: None
target_lags
int, str или list(int)
значение по умолчанию: None

Число периодов в прошлом, на которое должно быть определено запаздывание от целевого столбца. По умолчанию запаздывания отключены.

При прогнозировании этот параметр представляет количество строк для запаздывания от целевых значений в зависимости от частоты данных. Он представляется в виде списка или одного целого числа. Запаздывание следует использовать, когда связь между независимыми и зависимыми переменными не согласована или не коррелирует по умолчанию. Например, при попытке прогнозировать спрос на товар спрос за любой месяц может зависеть от цены на определенные товары тремя месяцами ранее. В этом примере может потребоваться запаздывание (отрицательное смещение) целевых значений (спроса) на три месяца, чтобы модель была обучена по правильной связи. Дополнительные сведения приведены в статье Автоматизированное обучение прогнозной модели временных рядов.

Обратите внимание на автоматическое определение размера запаздываний от целевых значений и скользящих интервалов. Просмотрите соответствующие комментарии в разделе, посвященном скользящим интервалам. Мы используем следующий алгоритм для определения оптимального размера запаздываний от целевых значений и скользящих интервалов.

  1. Оцените максимальный порядок запаздываний для выбора функции ретроспективного анализа. В нашем случае это число периодов до следующего уровня детализации частоты дат. Например, если частота — раз в день, то значение будет равно неделе (7), а если частота — раз в неделю, значение будет равно месяцу (4). Значения, умноженные на два, являются максимальными для запаздываний и скользящих интервалов. В нашем примере мы будем рассматривать максимальный порядок запаздываний 14 и 8 соответственно.

  2. Создайте ряд с неизменной сезонностью, добавив компоненты тренда и остатка. Этот ряд будет использоваться на следующем этапе.

  3. Вычислите PACF (функцию частичной автоматической корреляции) на основе данных из (2) и выполните поиск точек, в которых значение автоматической корреляции является значимым, т. е. ее абсолютное значение больше 1,96/square_root (максимальное значение запаздывания), что соответствует значимости 95 %.

  4. Если все точки значимы, сезонность считается строгой и функции ретроспективного анализа не создаются.

  5. Мы проверяем значения PACF с самого начала. Значение, предшествующее первой незначимой автоматической корреляции, обозначает запаздывание. Если за первым значимым элементом (значение, коррелирующее само с собой) следует незначимый, запаздывание будет равно 0 и функции ретроспективного анализа не будут использоваться.

feature_lags
str или None
значение по умолчанию: None

Флаг для создания запаздываний для числовых признаков с использованием значений auto и None.

target_rolling_window_size
int, str или None
значение по умолчанию: None

Число периодов в прошлом, используемых для создания среднего значения скользящего интервала для целевого столбца.

При прогнозировании этот параметр представляет n исторических периодов, используемых для создания прогнозируемых значений, <= размер набора данных для обучения. Если этот параметр не задан, n принимается равным полному размеру набора для обучения. Этот параметр следует задавать в том случае, если при обучении модели нужно учитывать только определенный объем данных за предыдущие периоды. Если задано значение auto, скользящий интервал будет оцениваться как последнее значение, при котором PACF превышает порог значимости. Дополнительные сведения см. в разделе, посвященном target_lags.

holiday_country
str или None
значение по умолчанию: None
seasonality
int, str или None
значение по умолчанию: auto

Задайте сезонность временного ряда в виде целого числа, кратного частоте ряда. Если для сезонности задано значение auto, она будет выводиться автоматически. Если задано значение None, временные ряды считаются несезонными, что эквивалентно значению сезонности 1.

country_or_region_for_holidays
str или None
значение по умолчанию: None

Страна или регион, используемые для создания признаков праздников. Это должны быть двухбуквенные коды страны и региона по стандарту ISO 3166, например "US" или "GB".

use_stl
str или None
значение по умолчанию: None

Настройка декомпозиции STL для целевого столбца временных рядов. Параметр use_stl может принимать три значения: None (Нет) (по умолчанию) — без декомпозиции STL, season — создание только компонента сезона и season_trend — создание компонентов сезона и тенденции.

short_series_handling
bool
значение по умолчанию: True

Настройка обработки коротких рядов для задач прогнозирования.

short_series_handling_configuration
str или None
значение по умолчанию: auto

Параметр, определяющий, как AutoML должно обрабатывать короткие временные ряды.

Возможные значения: "auto" (по умолчанию), "pad", "drop" и "None".

  • auto — короткие ряды будут заполнены, если длинные ряды отсутствуют. В противном случае короткие ряды будут удалены.
  • pad — все короткие ряды будут заполнены.
  • drop — все короткие ряды будут удалены.
  • None — короткие ряды останутся без изменений. Если задано значение "pad", таблица будет заполнена нулями и пустыми значениями для регрессоров и случайными значениями для целевого объекта со средним значением, равным медиане целевого значения для заданного идентификатора временных рядов. Если медиана больше или равна нулю, минимальное заполненное значение будет обрезано на ноль. Входные данные:

Дата

numeric_value

строка

target

01.01.2020

23

green

55

Выходные данные с минимальным числом значений — четыре:

Дата

numeric_value

строка

target

2019-12-29

0

Н/Д

55.1

2019-12-30

0

Н/Д

55.6

2019-12-31

0

Н/Д

54.5

01.01.2020

23

green

55

Примечание: Есть два параметра — short_series_handling_configuration и legacy short_series_handling. Если заданы оба параметра, они синхронизируются, как показано в таблице ниже (short_series_handling_configuration и short_series_handling для краткости указаны как handling_configuration и handling, соответственно).

Обработки

handling_configuration

результирующая обработка

результирующая handling_configuration

True

auto

True

auto

True

Площадку

True

auto

True

drop

True

auto

True

Нет

Неверно

Нет

Неверно

авто

Неверно

Нет

Неверно

Площадку

Неверно

Нет

Неверно

drop

Неверно

Нет

Неверно

Нет

Неверно

Нет

freq
str или None
значение по умолчанию: None

Частота прогнозирования.

При прогнозировании этот параметр представляет собой требуемый период составления прогноза, например, ежедневно, еженедельно, ежегодно и т. п. По умолчанию частота прогнозирования равна частоте набора данных. При необходимости можно задать для него значение больше (но не меньше) частоты набора данных. Мы агрегируем данные и сформируем результаты по частоте прогнозирования. Например, для ежедневных данных можно задать ежедневную, еженедельную или ежемесячную, но не ежечасную частоту прогнозирования. Частота должна быть псевдонимом смещения pandas. Дополнительные сведения приведены в документации по pandas: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

target_aggregation_function
str или None
значение по умолчанию: None

Функция, используемая для агрегирования целевого столбца временных рядов в соответствии с заданной пользователем частотой. Если target_aggregation_function установлена, но параметр частоты не задан, возникает ошибка. Возможны следующие целевые функции агрегирования: "sum", "max", "min" и "mean".

  • значения целевого столбца агрегируются на основе указанной операции. Как правило, в большинстве ситуаций подходит операция "sum".

  • Числовые столбцы прогнозирования в данных агрегируются по сумме, среднему значению, минимальному и максимальному значению. В результате автоматизированное ML создает новые столбцы с суффиксом, соответствующим имени примененной функции агрегирования, и применяет к ним выбранную операцию агрегирования.

  • Для столбцов категориального прогноза данные агрегируются по моде — наиболее выраженной категории в окне.

  • Столбцы прогнозирования дат агрегируются по минимальному значению, максимальному значению и моде.

Частота

target_aggregation_function

Механизм исправления регулярности данных

Нет (по умолчанию)

Нет (по умолчанию)

Агрегирование не применяется. Если не удается определить допустимую частоту, возникает ошибка.

Некоторое значение

Нет (по умолчанию)

Агрегирование не применяется. Если число точек данных, соответствующих заданной сетке частоты, меньше 90 %, эти точки будут удалены, в противном случае возникает ошибка.

Нет (по умолчанию)

Статистическая функция

Возникла ошибка об отсутствии параметра частоты.

Некоторое значение

Статистическая функция

Агрегирование по частоте с помощью функции providedaggregation.

cv_step_size
str, int или None
значение по умолчанию: auto

Количество периодов между origin_time одной свертки CV и следующей. Например, если n_step = 3 для ежедневных данных, то время создания каждой из сверток будет составлять три дня.

validate_parameters
bool
значение по умолчанию: True

Настройте этот параметр для проверки входных параметров.

features_unknown_at_forecast_time
значение по умолчанию: None
_enable_future_regressors
значение по умолчанию: False

Методы

from_parameters_dict

Конструирование класса ForecastingParameters из словаря.

validate_parameters

Проверка параметров в классе ForecastingParameters.

from_parameters_dict

Конструирование класса ForecastingParameters из словаря.

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

Параметры

parameter_dict
Обязательно

Словарь содержит все параметры прогнозирования.

validate_params
Обязательно

Нужно ли проверять входной параметр.

show_deprecate_warnings
значение по умолчанию: True

Переключение на отображение предупреждения о нерекомендуемых параметрах.

validate_parameters

Проверка параметров в классе ForecastingParameters.

validate_parameters()

Атрибуты

country_or_region_for_holidays

Страна или регион, используемые для создания признаков праздников. Это должен быть двухбуквенный код страны и региона по стандарту ISO 3166, например "US" или "GB".

cv_step_size

Возвращает количество периодов между origin_time одной свертки CV и следующей. Например, если n_step = 3 для ежедневных данных, то время создания каждой из сверток будет составлять три дня.

drop_column_names

Имена столбцов, которые нужно удалить для задач прогнозирования.

dropna

Настройка dropna в преобразователе данных временных рядов.

feature_lags

Флаг для создания запаздываний для числовых функций.

features_unknown_at_forecast_time

Имена столбцов признаков, доступных для обучения, но неизвестных во время прогнозирования или вывода. Если этот параметр не определен, предполагается, что все столбцы признаков известны во время прогнозирования.

forecast_horizon

Максимальный требуемый горизонт прогнозирования в единицах периодичности временных рядов. Значение по умолчанию — 1. Единицы измерения определяются на основе интервала времени обучающих данных (например, месяц или неделя, на который следует составить прогноз).

formatted_drop_column_names

Форматированные имена столбцов, которые нужно удалить для задач прогнозирования.

formatted_group_column_names

formatted_target_lags

Форматированное число периодов в прошлом, на которое должно быть определено запаздывание от целевого столбца.

formatted_time_series_id_column_names

Имена столбцов, используемых для группирования временных рядов. Можно использовать для создания нескольких рядов. Если атрибут time_series_id_column_names не определен, предполагается, что набор данных является одним временным рядом.

formatted_unknown_features

Имена столбцов признаков, доступных для обучения, но неизвестных во время прогнозирования или вывода. Если этот параметр не определен, предполагается, что все столбцы признаков известны во время прогнозирования. Поддерживается только в dnn/tcn. Если пользователь ничего не указывает, будущие функции не включаются в dnn. Однако если они предоставляют пустой список, будущие функции включаются, и предполагается, что все столбцы признаков известны во время прогнозирования.

freq

Частота набора данных.

group_column_names

holiday_country

Страна или регион, используемые для создания признаков праздников. Это должен быть двухбуквенный код страны и региона по стандарту ISO 3166, например "US" или "GB".

overwrite_columns

Настройка overwrite_columns в преобразователе данных временных рядов.

seasonality

Сезонность временного ряда в виде целого числа, кратного частоте ряда.

short_series_handling_configuration

Возврат данных при необходимости добавить короткий интервал.

target_aggregation_function

Возврат целевой статистической функции.

target_lags

Число периодов в прошлом, на которое должно быть определено запаздывание от целевого столбца.

target_rolling_window_size

time_column_name

Имя столбца времени. Это параметр требуется при прогнозировании, чтобы задать столбец даты и времени во входных данных, используемых для создания временного ряда и определения его периодичности.

time_series_id_column_names

Имена столбцов, используемых для группирования временных рядов. Можно использовать для создания нескольких рядов. Если атрибут time_series_id_column_names не определен, предполагается, что набор данных является одним временным рядом.

transform_dictionary

Настройка transform_dictionary в преобразователе данных временных рядов.

use_stl

Настройка декомпозиции STL для целевого столбца временных рядов. Параметр use_stl может принимать три значения: None (Нет) (по умолчанию) — без декомпозиции STL, season — создание только компонента сезона и season_trend — создание компонентов сезона и тенденции.

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