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
intstr

所需最大预测范围(以时序频率单位为单位)。 默认值为 1。

单位基于训练数据的时间间隔,例如预测器应预测的每月、每周。预测任务类型时,此参数是必需的。 有关设置预测参数的详细信息,请参阅 自动训练时序预测模型

默认值: 1
time_series_id_column_names
strlist(str)

用于对时间序列进行分组的列的名称。 它可用于创建多个序列。 如果未定义时序 ID 列名称,或者指定的标识符列未标识数据集中的所有序列,则会自动为数据集创建时序标识符。

默认值: None
group_column_names
strlist(str)
默认值: None
target_lags
int, strlist(int)

要从目标列滞后的过去时间段数。 默认情况下,滞后时间处于关闭状态。

预测时,此参数表示根据数据频率滞后目标值的行数。 这表示为列表或单个整数。 默认情况下,当独立变量与从属变量之间的关系不匹配或关联时,应使用滞后时间。 例如,当尝试预测产品的需求时,任何月份的需求都可能取决于 3 个月前特定商品的价格。 在此示例中,你可能希望将目标(需求)负延迟 3 个月,以便模型在正确的关系上进行训练。 有关详细信息,请参阅 自动训练时序预测模型

注意自动检测目标滞后和滚动窗口大小。 请参阅滚动窗口部分的相应注释。 我们使用下一个算法来检测最佳目标延迟和滚动窗口大小。

  1. 估计回溯功能选择的最大滞后顺序。 在本例中,它是到下一个日期频率粒度的时间段数,即如果频率为每日,则为一周(7),如果是一周,则为月(4)。 该值乘以 2 是滞后/滚动窗口的最大可能值。 在我们的示例中,我们将分别考虑最大延迟顺序为 14 和 8。

  2. 通过添加趋势和残差组件来创建去季节性序列。 这将在下一步中使用。

  3. 估计 PACF - 来自 (2) 的数据上的部分自动关联函数并搜索点,其中自动相关性显著,即其绝对值大于 1.96/square_root(最大滞后值),对应于 95%的重要性。

  4. 如果所有点都很重要,我们认为它具有很强的季节性,并且不会创建回溯功能。

  5. 我们从头开始扫描 PACF 值,并在第一个微不足道的自动关联前的值指定滞后时间。 如果第一个重要元素(值与自身关联)后跟微不足道,则滞后时间将为 0,我们不会使用回溯功能。

默认值: None
feature_lags
strNone

用于为具有“auto”或“None”的数字特征生成滞后的标志。

默认值: None
target_rolling_window_size
int, strNone

用于创建目标列的滚动窗口平均值的过去时间段数。

预测时,此参数表示用于生成预测 值的历史周期 , <= 定型集大小。 如果省略, 则 n 是完整的训练集大小。 如果只想在训练模型时考虑一定数量的历史记录,请指定此参数。 如果设置为“auto”,则滚动窗口将估计为 PACF 的上一个值,然后是重要性阈值。 有关详细信息,请参阅target_lags部分。

默认值: None
holiday_country
strNone
默认值: None
seasonality
int, strNone

将时序季节性设置为序列频率的整数倍数。 如果季节性设置为“auto”,则会推断它。 如果设置为“无”,则假定时序为非季节性,相当于季节性=1。

默认值: auto
country_or_region_for_holidays
strNone

用于生成假日功能的国家/地区。 这些代码应为 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。

默认值: None
use_stl
strNone

配置时序目标列的 STL 分解。 use_stl可以采用三个值:None (default) - 无 stl 分解,“季节”- 仅生成季节组件和season_trend - 生成季节和趋势组件。

默认值: None
short_series_handling

为预测任务配置短序列处理。

默认值: True
short_series_handling_configuration
strNone

定义 AutoML 如何处理短时序的参数。

可能的值:“auto”(默认值)、“pad”、“drop”和“None”。

  • 如果没有长系列,则自动短系列将被填充,否则将删除短系列。
  • 填充 所有短系列。
  • 删除 所有短系列将被删除”。
  • 不会 修改短系列。 如果设置为“pad”,则表将填充回归器的零值和空值,目标随机值平均值等于给定时序 ID 的目标值中值。如果中值大于或等于零,则最小填充值将被零剪裁。 输入:

日期

numeric_value

字符串

目标

2020-01-01

23

绿

55

假设最小值数为 4 的输出:

日期

numeric_value

字符串

目标

2019-12-29

0

55.1

2019-12-30

0

55.6

2019-12-31

0

54.5

2020-01-01

23

绿

55

注意: 我们有两个参数short_series_handling_configuration和旧版short_series_handling。 设置这两个参数时,我们将同步它们,如下表所示(short_series_handling_configuration和short_series_handling分别标记为handling_configuration和处理)。

处理

handling_configuration

生成的处理

生成的handling_configuration

真 实

自动

真 实

自动

真 实

真 实

自动

真 实

删除

真 实

自动

真 实

没有

没有

自动

没有

没有

删除

没有

没有

没有

默认值: auto
freq
strNone

预测频率。

预测时,此参数表示需要预测的时间段,例如每日、每周、每年等。默认情况下,预测频率为数据集频率。 可以选择将其设置为大于(但不小于)数据集频率。 我们将聚合数据,并按预测频率生成结果。 例如,对于每日数据,可以将频率设置为每日、每周或每月,但不能设置为每小时。 频率必须是 pandas 偏移别名。 有关详细信息,请参阅 pandas 文档: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

默认值: None
target_aggregation_function
strNone

用于聚合符合用户指定频率的时序目标列的函数。 如果设置了target_aggregation_function,但未设置 freq 参数,则会引发错误。 可能的目标聚合函数包括:“sum”、“max”、“min”和“mean”。

  • 目标列值根据指定的作进行聚合。 通常,sum 适用于大多数方案。

  • 数据中的数值预测器列会按总和、平均值、最小值和最大值进行聚合。 因此,自动 ML 会生成以聚合函数名称为后缀的新列,并应用所选的聚合运算。

  • 对于分类预测器列,数据会按模式(窗口中最醒目的类别)进行聚合。

  • 日期预测器列会按最小值、最大值和模式进行聚合。

频率

target_aggregation_function

数据规律性修复机制

无(默认值)

无(默认值)

未应用聚合。如果有效频率无法确定,将引发错误。

一些值

无(默认值)

未应用聚合。如果符合给定频率网格的数据点数小于,则将删除 90%these 点,否则将引发错误。

无(默认值)

聚合函数

引发有关缺少频率参数的错误。

一些值

聚合函数

使用提供的聚合函数聚合到频率。

默认值: None
cv_step_size
str, intNone

一个 CV 折叠的origin_time和下一个折叠之间的句点数。 例如,如果 n_step = 3 表示每日数据,则每个折叠的起始时间将相隔三天。

默认值: auto
validate_parameters

配置为验证输入参数。

默认值: 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

一个 CV 折叠的origin_time和下一个折叠之间的句点数。 例如,如果 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 (default) - 无 stl 分解,“季节”- 仅生成季节组件和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