ForecastingParameters Класс
Управление параметрами, используемыми задачами прогнозирования.
- Наследование
-
builtins.objectForecastingParameters
Конструктор
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
Имя столбца времени. Это параметр требуется при прогнозировании, чтобы задать столбец даты и времени во входных данных, используемых для создания временного ряда и определения его периодичности.
Максимальный требуемый горизонт прогнозирования в единицах периодичности временных рядов. Значение по умолчанию — 1.
Единицы измерения определяются на основе интервала времени данных обучения, например, месяц или неделя, на который следует составить прогноз. Если тип задачи — прогнозирование, этот параметр является обязательным. Дополнительные сведения о настройке параметров прогнозирования приведены в статье Автоматизированное обучение прогнозной модели временных рядов.
Имена столбцов, используемых для группирования временных рядов. Можно использовать для создания нескольких рядов. Если имена столбцов идентификаторов временных рядов не заданы или если указанные столбцы идентификаторов не определяют все ряды в наборе данных, то идентификаторы временных рядов для набора данных будут создаваться автоматически.
Число периодов в прошлом, на которое должно быть определено запаздывание от целевого столбца. По умолчанию запаздывания отключены.
При прогнозировании этот параметр представляет количество строк для запаздывания от целевых значений в зависимости от частоты данных. Он представляется в виде списка или одного целого числа. Запаздывание следует использовать, когда связь между независимыми и зависимыми переменными не согласована или не коррелирует по умолчанию. Например, при попытке прогнозировать спрос на товар спрос за любой месяц может зависеть от цены на определенные товары тремя месяцами ранее. В этом примере может потребоваться запаздывание (отрицательное смещение) целевых значений (спроса) на три месяца, чтобы модель была обучена по правильной связи. Дополнительные сведения приведены в статье Автоматизированное обучение прогнозной модели временных рядов.
Обратите внимание на автоматическое определение размера запаздываний от целевых значений и скользящих интервалов. Просмотрите соответствующие комментарии в разделе, посвященном скользящим интервалам. Мы используем следующий алгоритм для определения оптимального размера запаздываний от целевых значений и скользящих интервалов.
Оцените максимальный порядок запаздываний для выбора функции ретроспективного анализа. В нашем случае это число периодов до следующего уровня детализации частоты дат. Например, если частота — раз в день, то значение будет равно неделе (7), а если частота — раз в неделю, значение будет равно месяцу (4). Значения, умноженные на два, являются максимальными для запаздываний и скользящих интервалов. В нашем примере мы будем рассматривать максимальный порядок запаздываний 14 и 8 соответственно.
Создайте ряд с неизменной сезонностью, добавив компоненты тренда и остатка. Этот ряд будет использоваться на следующем этапе.
Вычислите PACF (функцию частичной автоматической корреляции) на основе данных из (2) и выполните поиск точек, в которых значение автоматической корреляции является значимым, т. е. ее абсолютное значение больше 1,96/square_root (максимальное значение запаздывания), что соответствует значимости 95 %.
Если все точки значимы, сезонность считается строгой и функции ретроспективного анализа не создаются.
Мы проверяем значения PACF с самого начала. Значение, предшествующее первой незначимой автоматической корреляции, обозначает запаздывание. Если за первым значимым элементом (значение, коррелирующее само с собой) следует незначимый, запаздывание будет равно 0 и функции ретроспективного анализа не будут использоваться.
Флаг для создания запаздываний для числовых признаков с использованием значений auto и None.
Число периодов в прошлом, используемых для создания среднего значения скользящего интервала для целевого столбца.
При прогнозировании этот параметр представляет n исторических периодов, используемых для создания прогнозируемых значений, <= размер набора данных для обучения. Если этот параметр не задан, n принимается равным полному размеру набора для обучения. Этот параметр следует задавать в том случае, если при обучении модели нужно учитывать только определенный объем данных за предыдущие периоды. Если задано значение auto, скользящий интервал будет оцениваться как последнее значение, при котором PACF превышает порог значимости. Дополнительные сведения см. в разделе, посвященном target_lags.
Задайте сезонность временного ряда в виде целого числа, кратного частоте ряда. Если для сезонности задано значение auto, она будет выводиться автоматически. Если задано значение None, временные ряды считаются несезонными, что эквивалентно значению сезонности 1.
Страна или регион, используемые для создания признаков праздников. Это должны быть двухбуквенные коды страны и региона по стандарту ISO 3166, например "US" или "GB".
Настройка декомпозиции STL для целевого столбца временных рядов. Параметр use_stl может принимать три значения: None (Нет) (по умолчанию) — без декомпозиции STL, season — создание только компонента сезона и season_trend — создание компонентов сезона и тенденции.
- short_series_handling
- bool
Настройка обработки коротких рядов для задач прогнозирования.
Параметр, определяющий, как 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
Неверно
Нет
Неверно
Нет
Неверно
Нет
Частота прогнозирования.
При прогнозировании этот параметр представляет собой требуемый период составления прогноза, например, ежедневно, еженедельно, ежегодно и т. п. По умолчанию частота прогнозирования равна частоте набора данных. При необходимости можно задать для него значение больше (но не меньше) частоты набора данных. Мы агрегируем данные и сформируем результаты по частоте прогнозирования. Например, для ежедневных данных можно задать ежедневную, еженедельную или ежемесячную, но не ежечасную частоту прогнозирования. Частота должна быть псевдонимом смещения pandas. Дополнительные сведения приведены в документации по pandas: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects
Функция, используемая для агрегирования целевого столбца временных рядов в соответствии с заданной пользователем частотой. Если target_aggregation_function установлена, но параметр частоты не задан, возникает ошибка. Возможны следующие целевые функции агрегирования: "sum", "max", "min" и "mean".
значения целевого столбца агрегируются на основе указанной операции. Как правило, в большинстве ситуаций подходит операция "sum".
Числовые столбцы прогнозирования в данных агрегируются по сумме, среднему значению, минимальному и максимальному значению. В результате автоматизированное ML создает новые столбцы с суффиксом, соответствующим имени примененной функции агрегирования, и применяет к ним выбранную операцию агрегирования.
Для столбцов категориального прогноза данные агрегируются по моде — наиболее выраженной категории в окне.
Столбцы прогнозирования дат агрегируются по минимальному значению, максимальному значению и моде.
Частота
target_aggregation_function
Механизм исправления регулярности данных
Нет (по умолчанию)
Нет (по умолчанию)
Агрегирование не применяется. Если не удается определить допустимую частоту, возникает ошибка.
Некоторое значение
Нет (по умолчанию)
Агрегирование не применяется. Если число точек данных, соответствующих заданной сетке частоты, меньше 90 %, эти точки будут удалены, в противном случае возникает ошибка.
Нет (по умолчанию)
Статистическая функция
Возникла ошибка об отсутствии параметра частоты.
Некоторое значение
Статистическая функция
Агрегирование по частоте с помощью функции providedaggregation.
Количество периодов между origin_time одной свертки CV и следующей. Например, если n_step = 3 для ежедневных данных, то время создания каждой из сверток будет составлять три дня.
- validate_parameters
- bool
Настройте этот параметр для проверки входных параметров.
- features_unknown_at_forecast_time
- _enable_future_regressors
Методы
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
Переключение на отображение предупреждения о нерекомендуемых параметрах.
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
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по