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
intstr

期望的最大预测边际,以时序频率为单位。 默认值为 1。

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

默认值: 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. 估计 (2) 上数据的 PACF - 部分自动关联函数,并搜索具有显著自动相关性的点,即其绝对值大于 1.96/square_root(最大滞后值),对应于 95% 的重要性。

  4. 如果所有点都重要,则我们认为它是强季节性,不会创建回看特征。

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

默认值: None
feature_lags
strNone

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

默认值: None
target_rolling_window_size
int, strNone

用于创建目标列的滚动窗口平均值的过去周期数。

预测时,此参数表示用于生成预测值的 n 个历史周期,<=训练集大小。 如果省略,则 n 为完整训练集大小。 如果训练模型时只想考虑一定量的历史记录,请指定此参数。 如果设置为“auto”,则当 PACF 大于显著性阈值时,滚动窗口估计为最后一个值。 请查看 target_lags 部分了解详情。

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

设置时序季节性为序列频率的整数倍数。 如果将季节性设置为“自动”,将推断出该季节性。 如果设置为 None,则假定时序为非季节性,这等效于季节性=1。

默认值: auto
country_or_region_for_holidays
strNone

用于生成节假日特征的国家/地区。 这些值应该是 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。

默认值: None
use_stl
strNone

配置时序目标列的 STL 分解。 use_stl 可以取三个值:None(默认值)- 不进行 STL 分解;season - 仅生成季节组件;season_trend - 生成季节和趋势组件。

默认值: None
short_series_handling

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

默认值: True
short_series_handling_configuration
strNone

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

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

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

Date

numeric_value

string

目标

2020-01-01

23

green

55

输出假设最小值为 4:

Date

numeric_value

string

目标

2019-12-29

0

NA

55.1

2019-12-30

0

NA

55.6

2019-12-31

0

NA

54.5

2020-01-01

23

green

55

备注:我们有两个参数 Short_series_handling_configuration 和旧 short_series_handling。 如果同时设置了这两个参数,则将按下表中所示对其进行同步(为简洁起见,short_series_handling_configuration 和 short_series_handling 分别标记为 handling_configuration 和 handling)。

处理

handling_configuration

生成的处理

生成的handling_configuration

True

auto

True

auto

正确

True

auto

正确

drop

True

auto

正确

False

错误

auto

False

错误

False

错误

drop

False

False

False

默认值: 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%,则将删除这些点,否则将引发错误。

无(默认)

聚合函数

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

某些值

聚合函数

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

默认值: None
cv_step_size
str, intNone

从一个 CV 折叠到下一个 CV 折叠的 origin_time 之间的周期数。 例如,如果对于每日数据 n_step = 3,则每个折叠的源时间将相隔 3 天。

默认值: auto
validate_parameters

配置以验证输入参数。

默认值: True
features_unknown_at_forecast_time
默认值: None
_enable_future_regressors
默认值: False

方法

from_parameters_dict

从 dict 构造 ForecastingParameters 类。

validate_parameters

验证 ForecastingParameters 类中的参数。

from_parameters_dict

从 dict 构造 ForecastingParameters 类。

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

参数

名称 说明
parameter_dict
必需

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 折叠到下一个 CV 折叠的 origin_time 之间的周期数。 例如,如果对于每日数据 n_step = 3,则每个折叠的源时间将相隔 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