ForecastingSettings Класс

Параметры прогнозирования для задания AutoML.

Наследование
azure.ai.ml.entities._mixins.RestTranslatableMixin
ForecastingSettings

Конструктор

ForecastingSettings(*, country_or_region_for_holidays: str | None = None, cv_step_size: int | None = None, forecast_horizon: str | int | None = None, target_lags: str | int | List[int] | None = None, target_rolling_window_size: str | int | None = None, frequency: str | None = None, feature_lags: str | None = None, seasonality: str | int | None = None, use_stl: str | None = None, short_series_handling_config: str | None = None, target_aggregate_function: str | None = None, time_column_name: str | None = None, time_series_id_column_names: str | List[str] | None = None, features_unknown_at_forecast_time: str | List[str] | None = None)

Параметры

Имя Описание
country_or_region_for_holidays
Обязательно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметр, определяющий, как 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, соответственно).

Обработки

обработка конфигурации

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

результирующая обработкаконфигурация

True

auto

True

auto

True

Площадку

True

auto

True

drop

True

auto

True

Нет

Неверно

Нет

Неверно

авто

Неверно

Нет

Неверно

Площадку

Неверно

Нет

Неверно

drop

Неверно

Нет

Неверно

Нет

Неверно

Нет

target_aggregate_function
Обязательно
str

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

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

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

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

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

Частота

target_aggregation_function

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

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

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

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

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

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

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

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

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

Возникла ошибка о параметре missingfrequency.

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

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

Агрегирование по частоте с использованием статистической функцииprovided.

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

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

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

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

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

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

Параметры Keyword-Only

Имя Описание
country_or_region_for_holidays
Обязательно
cv_step_size
Обязательно
forecast_horizon
Обязательно
target_lags
Обязательно
target_rolling_window_size
Обязательно
frequency
Обязательно
feature_lags
Обязательно
seasonality
Обязательно
use_stl
Обязательно
short_series_handling_config
Обязательно
target_aggregate_function
Обязательно
time_column_name
Обязательно
time_series_id_column_names
Обязательно
features_unknown_at_forecast_time
Обязательно