LagLeadOperator 类
用于计算值滞后和领先的转换类。 适用于稀疏或非稀疏的常规时序数据集。 有两个滞后选项:“lag_by_time”或“lag_by_occurrence”。默认值:“lag_by_occurrence”。“lag_by_time”适用于(几乎)均匀间隔的时序数据,而“lag_by_occurrence”更适合非均匀间隔数据。此模块将通过检查数据稀疏性来选择合适的选项。
这将用作预测管道中的特征化步骤。
示例 1(均匀间隔的时序数据,将使用 Lag_By_Time):构造一个小的数据帧:
>>> raw_data = {'store': ['storeA'] * 3 + ['storeB'] * 4,
... 'date' : pd.to_datetime(
... ['2017-01-01', '2017-02-01', '2017-03-01'] * 2 +
... ['2017-04-01'] ),
... 'sales': range(8, 15)}
>>> tsds = TimeSeriesDataSet(
... data=pd.DataFrame(raw_data),
... time_series_id_column_names=['store'], time_column_name=['date'],
... target_column_name='sales')
>>> tsds = tsdf.data.sort_index()
>>> tsds.data
sales
store date
storeA 2017-01-01 8
2017-02-01 9
2017-03-01 10
storeB 2017-01-01 11
2017-02-01 12
2017-03-01 13
2017-04-01 14
>>> tsds=MaxHorizonFeaturizer(1).fit_transform(tsds)
sales horizon_origin
store date origin
storeA 2017-01-01 2016-12-01 8 1
2017-02-01 2017-01-01 9 1
2017-03-01 2017-02-01 10 1
storeB 2017-01-01 2016-12-01 11 1
2017-02-01 2017-01-01 12 1
2017-03-01 2017-02-01 13 1
2017-04-01 2017-03-01 14 1
>>> make_lags = LagLeadOperator(
... lags_to_construct={'sales': [-1, 1]})
>>> make_lags.fit(tsds)
>>> result = make_lags.transform(tsds)
>>> result.data
sales horizon_origin sales_lead1 sales_lag1
store date origin
storeA 2017-01-01 2016-12-01 8 1 9.00 nan
2017-02-01 2017-01-01 9 1 10.00 8.00
2017-03-01 2017-02-01 10 1 nan 9.00
storeB 2017-01-01 2016-12-01 11 1 12.00 nan
2017-02-01 2017-01-01 12 1 13.00 11.00
2017-03-01 2017-02-01 13 1 14.00 12.00
2017-04-01 2017-03-01 14 1 nan 13.00
示例 2(非均匀间隔的时序数据,将使用 Lag_By_Occurrence):构造一个小的 TimeSeriesDataSet:
>>> raw_data = {'store': ['storeA'] * 3 + ['storeB'] * 4,
... 'date' : pd.to_datetime(
... ['2017-01-01', '2017-02-01', '2017-04-01'] * 2 +
... ['2017-07-01'] ),
... 'sales': range(8, 15)}
>>> tsds = TimeSeriesDataSet(
... data=pd.DataFrame(raw_data),
... time_series_id_column_names=['store'], time_column_name=['date'],
... target_column_name='sales')
>>> tsds = tsds.data.sort_index()
>>> tsds.data
sales
store date
storeA 2017-01-01 8
2017-02-01 9
2017-04-01 10
storeB 2017-01-01 11
2017-02-01 12
2017-04-01 13
2017-07-01 14
>>> tsds=MaxHorizonFeaturizer(1).fit_transform(tsds)
>>> tsds
sales horizon_origin
store date origin
storeA 2017-01-01 2016-12-01 8 1
2017-02-01 2017-01-01 9 1
2017-04-01 2017-03-01 10 1
storeB 2017-01-01 2016-12-01 11 1
2017-02-01 2017-01-01 12 1
2017-04-01 2017-03-01 13 1
2017-07-01 2017-06-01 14 1
>>> make_lags = LagLeadOperator(
... lags_to_construct={'sales': [1]})
>>> make_lags.fit(tsds)
>>> result = make_lags.transform(tsds)
>>> result.data
sales horizon_origin sales_occurrence_lag1 date_occurrence_lag1_timeDiffDays
store date origin
storeA 2017-01-01 2016-12-01 8 1 nan nan
2017-02-01 2017-01-01 9 1 8.00 31
2017-04-01 2017-03-01 10 1 9.00 59
storeB 2017-01-01 2016-12-01 11 1 nan nan
2017-02-01 2017-01-01 12 1 11.00 31
2017-04-01 2017-03-01 13 1 12.00 59
2017-07-01 2017-06-01 14 1 13.00 91
- 继承
-
LagLeadOperatorLagLeadOperatorazureml.automl.runtime.featurizer.transformer.timeseries.forecasting_base_estimator._GrainBasedStatefulTransformerLagLeadOperator
构造函数
LagLeadOperator(lags: Dict[str, Union[int, List[int]]], max_horizon: int = 1, dropna: bool = False, origin_time_column_name: str = 'origin', overwrite_columns: bool = False, backfill_cache: bool = False, freq: Optional[Union[str, pandas._libs.tslibs.offsets.DateOffset]] = None)
参数
- lags
- dict
{'column_to_lag' : [lag_order1, lag_order2]} 格式的字典。 字典键必须是转换所应用到的数据帧中的列名称。 字典值是指示必须构造哪些滞后的整数或整数列表。 允许使用负值。负值指示“领先”,即,转移到时序的未来值。
- max_horizon
- int
稍后你要提前多少个步骤预测时序。 这用于构造 time 和 origin_time 的完整网格,以确保输出与下游的多步预测特征化器兼容。 如果为输入数据设置了 origin_time_column_name,则将忽略此参数,因为假设用于设置多边际数据结构的作业已执行。 默认值为 1,表示为大多数用户生成预期行为。
- origin_time_column_name
- str
当输入不包含 origin_time 列时如何为该列命名。 必须是单个字符串。 如果为输入数据设置了 origin_time_column_name,则将忽略此参数,因为假设用于设置多边际数据结构的作业已执行。 默认值为“origin”。
- overwrite_columns
- bool
一个标志,它允许进行转换,以覆盖输入数据帧中已存在的特征的现有列。 如果为 True,则输出警告并覆盖列。 如果为 False,则引发 RuntimeError。 默认值为 False,以保护用户数据。
- freq
方法
| fit |
拟合滞后/领先转换。 此方法执行训练数据尾部位的缓存,这样就会使用训练中的非缺失值填充测试数据上的滞后 |
| fit_transform |
调用 fit_transform() 时,将执行此操作并将“_in_fit_transform”标志设置为 False。 此标志表示我们在测试集中操作。 只有这样才能按实例生成滞后。 |
| get_col_internal_type |
如果列是由滞后领先运算符生成的,则获取该列的类型。 |
| get_params |
获取此估算器的参数。 |
| preview_column_names |
获取转换应用于 X 时生成的滞后领先特征名称。 |
| transform |
在 TimeSeriesDataSet X 中构造滞后列。 |
fit
拟合滞后/领先转换。
此方法执行训练数据尾部位的缓存,这样就会使用训练中的非缺失值填充测试数据上的滞后
fit(X: azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet, y: Optional[Any] = None) -> azureml.automl.runtime.featurizer.transformer.timeseries.lag_lead_operator.LagLeadOperator
参数
- X
- <xref:azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet>
输入数据
- y
已忽略。 管道兼容性所必需的
返回
拟合转换
返回类型
fit_transform
调用 fit_transform() 时,将执行此操作并将“_in_fit_transform”标志设置为 False。 此标志表示我们在测试集中操作。 只有这样才能按实例生成滞后。
fit_transform(X: azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet, y: Optional[numpy.ndarray] = None, **fit_params: Any) -> azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet
get_col_internal_type
如果列是由滞后领先运算符生成的,则获取该列的类型。
static get_col_internal_type(col_name: str) -> Optional[str]
参数
- col_name
列名称。
返回
如果列由滞后领先运算符生成,则返回 lag/lead/occurrence_lag/occurrence_lead,否则返回 None。
get_params
获取此估算器的参数。
get_params(deep=True)
参数
返回
params - 映射到其值的参数名称。
返回类型
preview_column_names
获取转换应用于 X 时生成的滞后领先特征名称。
preview_column_names(tsds: azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet, with_origin: bool = False) -> List[str]
参数
- tsds
- <xref:azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet>
要为其生成列名的 TimeSeriesDataSet。
返回
滞后领先特征名称
返回类型
transform
在 TimeSeriesDataSet X 中构造滞后列。
transform(X: azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet) -> azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet
参数
- X
- <xref:azureml.automl.runtime._time_series_data_set.TimeSeriesDataSet>
输入数据
返回
包含滞后/领先列的数据帧
返回类型
属性
dropna
请参阅“dropna”参数。
freq
返回转换的频率。
lags_to_construct
将列名字典获取到要构造的滞后/领先列表。
max_horizon
请参阅“max_horizon”参数。
origin_time_colname
请参阅“origin_time_column_name”参数。
overwrite_columns
请参阅“overwrite_columns”参数。
LAG_BY_OCCURRENCE
LAG_BY_OCCURRENCE = 'lag_by_occurrence'
LAG_BY_TIME
LAG_BY_TIME = 'lag_by_time'
LAG_POSTFIX
LAG_POSTFIX = 'lag'
LEAD_POSTFIX
LEAD_POSTFIX = 'lead'
OCCURRENCE_POSTFIX
OCCURRENCE_POSTFIX = 'occurrence'
POSTFIX_SEP
POSTFIX_SEP = '_'
SPARSITY_THRESHOLD
SPARSITY_THRESHOLD = 0.02
反馈
提交和查看相关反馈