Поделиться через


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

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

Default value: None
forecast_horizon
int или str

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

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

Default value: 1
time_series_id_column_names
str или list(str)

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

Default value: None
group_column_names
str или list(str)
Default value: None
target_lags
int, str или list(int)

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

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

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

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

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

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

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

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

Default value: None
feature_lags
str или None

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

Default value: None
target_rolling_window_size
int, str или None

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

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

Default value: None
holiday_country
str или None
Default value: None
seasonality
int, str или None

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

Default value: auto
country_or_region_for_holidays
str или None

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

Default value: None
use_stl
str или None

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

Default value: None
short_series_handling

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

Default value: True
short_series_handling_configuration
str или None

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

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

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

Дата

numeric_value

струна

целевой объект

01.01.2020

двадцать три

зелёный

55

Выходные данные, предполагая минимальное количество значений, равное четырем:

Дата

numeric_value

струна

целевой объект

2019-12-29

0

NA

55.1

2019-12-30

0

NA

55.6

2019-12-31

0

NA

54.5

01.01.2020

двадцать три

зелёный

55

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

обработка

handling_configuration

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

результирующий handling_configuration

Верно

авто

Верно

авто

Верно

подушечка

Верно

авто

Верно

капля

Верно

авто

Верно

Отсутствует

Неправда

Отсутствует

Неправда

авто

Неправда

Отсутствует

Неправда

подушечка

Неправда

Отсутствует

Неправда

капля

Неправда

Отсутствует

Неправда

Отсутствует

Неправда

Отсутствует

Default value: auto
freq
str или None

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

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

Default value: None
target_aggregation_function
str или None

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

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

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

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

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

Частота

target_aggregation_function

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

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

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

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

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

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

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

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

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

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

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

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

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

Default value: None
cv_step_size
str, int или None

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

Default value: auto
validate_parameters

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

Default value: True
features_unknown_at_forecast_time
Default value: None
_enable_future_regressors
Default value: 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

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

Default value: 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

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

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