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)
参数
期望的最大预测边际,以时序频率为单位。 默认值为 1。
单位基于训练数据的时间间隔,例如,预测人员应每月、每周预测。当任务类型为 forecasting 时,此参数是必需的。 有关设置预测参数的详细信息,请参阅自动训练时序预测模型。
用于对时序进行分组的列名称。 它可用于创建多个时序。 如果未定义时序 ID 列名,或者指定的标识符列未标识数据集中所有序列,则会自动为数据集创建时序标识符。
滞后于目标列的过去周期数。 默认情况下将关闭滞后。
预测时,此参数表示基于数据频率滞后目标值的行数。 这表示为一个列表或整数。 默认情况下,在独立变量和依赖变量之间的关系不匹配或不关联时,应使用滞后。 例如,在尝试预测某产品的需求时,任何月份的需求可能取决于之前 3 个月特定商品的价格。 在此示例中,可将目标(需求)的滞后负 3 个月,以便针对正确的关系训练模型。 有关详细信息,请参阅自动训练时序预测模型。
请注意自动检测目标滞后和滚动窗口大小。 请参阅滚动窗口部分中的相应注释。 我们使用下一算法来检测最佳目标滞后和滚动窗口大小。
估计回看功能选择的最大滞后时间顺序。 在我们的案例中,它是直至下一个日期频率粒度的周期数,即如果频率为每日,则为一周 (7) ,如果频率是一周,则为一月 (4)。 值乘以 2 是滞后/滚动窗口的最大可能值。 在我们的示例中,我们将分别考虑最大滞后顺序 14 和 8)。
通过添加趋势和残差分量创建去季节性序列。 该值将在下节中使用。
估计 (2) 上数据的 PACF - 部分自动关联函数,并搜索具有显著自动相关性的点,即其绝对值大于 1.96/square_root(最大滞后值),对应于 95% 的重要性。
如果所有点都重要,则我们认为它是强季节性,不会创建回看特征。
从开始扫描 PACF 值,第一个不重要的自动关联之前的值将指定滞后。 如果第一个重要元素(值与自身关联)后跟不重要的元素,则滞后将为 0,我们不会使用回看功能。
用于创建目标列的滚动窗口平均值的过去周期数。
预测时,此参数表示用于生成预测值的 n 个历史周期,<=训练集大小。 如果省略,则 n 为完整训练集大小。 如果训练模型时只想考虑一定量的历史记录,请指定此参数。 如果设置为“auto”,则当 PACF 大于显著性阈值时,滚动窗口估计为最后一个值。 请查看 target_lags 部分了解详情。
设置时序季节性为序列频率的整数倍数。 如果将季节性设置为“自动”,将推断出该季节性。 如果设置为 None,则假定时序为非季节性,这等效于季节性=1。
用于生成节假日特征的国家/地区。 这些值应该是 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。
配置时序目标列的 STL 分解。 use_stl 可以取三个值:None(默认值)- 不进行 STL 分解;season - 仅生成季节组件;season_trend - 生成季节和趋势组件。
定义 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
无
预测频率。
预测时,此参数表示预测所需的时间段,例如每日、每周、每年等。默认情况下,预测频率为数据集频率。 可以选择将其设置为比数据集频率大,不能比数据集频率小。 我们将聚合数据并生成预测频率的结果。 例如,对于每日数据,可以将频率设置为每日、每周或每月,但不能设置为每小时。 频率必须是 pandas 偏移别名。 有关详细信息,请参阅 pandas 文档:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects
用于聚合时序目标列以符合用户指定频率的函数。 如果设置了 target_aggregation_function,但未设置 freq 参数,则会引发错误。 可能的目标聚合函数包括:“sum”、“max”、“min” 和 “mean”。
目标列值将基于指定的运算进行聚合。 通常,sum 适用于大多数方案。
数据中的数值预测器列会按总和、平均值、最小值和最大值进行聚合。 因此,自动 ML 会生成以聚合函数名称为后缀的新列,并应用所选的聚合运算。
对于分类预测器列,数据会按模式(窗口中最醒目的类别)进行聚合。
日期预测器列会按最小值、最大值和模式进行聚合。
频率
target_aggregation_function
数据正则性修复机制
无(默认)
无(默认)
不应用聚合。如果无法确定有效频率,将引发错误。
某些值
无(默认)
不应用聚合。如果符合给定频率网格的数据点数小于 90%,则将删除这些点,否则将引发错误。
无(默认)
聚合函数
引发有关缺少频率参数的错误。
某些值
聚合函数
使用提供的聚合函数聚合到频率。
从一个 CV 折叠到下一个 CV 折叠的 origin_time 之间的周期数。 例如,如果对于每日数据 n_step = 3,则每个折叠的源时间将相隔 3 天。
- features_unknown_at_forecast_time
- _enable_future_regressors
方法
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
切换为显示已弃用参数警告。
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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈