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
继承
LagLeadOperator
azureml.automl.runtime.featurizer.transformer.timeseries.forecasting_base_estimator._GrainBasedStatefulTransformer
LagLeadOperator

构造函数

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

稍后你要提前多少个步骤预测时序。 这用于构造 time 和 origin_time 的完整网格,以确保输出与下游的多步预测特征化器兼容。 如果为输入数据设置了 origin_time_column_name,则将忽略此参数,因为假设用于设置多边际数据结构的作业已执行。 默认值为 1,表示为大多数用户生成预期行为。

dropna
bool
默认值: False

在创建滞后时是否应删除缺失值? 默认为 False。 请注意,不会删除测试数据中的缺失值,而是使用训练数据中的值来“填充”它们。

origin_time_column_name
str
默认值: origin

当输入不包含 origin_time 列时如何为该列命名。 必须是单个字符串。 如果为输入数据设置了 origin_time_column_name,则将忽略此参数,因为假设用于设置多边际数据结构的作业已执行。 默认值为“origin”。

overwrite_columns
bool
默认值: False

一个标志,它允许进行转换,以覆盖输入数据帧中已存在的特征的现有列。 如果为 True,则输出警告并覆盖列。 如果为 False,则引发 RuntimeError。 默认值为 False,以保护用户数据。

backfill_cache
bool
默认值: False

回填 chache 来避免 NaN,以防止输出数据帧形状退化。

freq
默认值: None

方法

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)

参数

deep
bool, <xref:default=True>
默认值: True

如果为 True,则返回此估算器的参数和包含的子对象(即估算器)。

返回

params - 映射到其值的参数名称。

返回类型

<xref:<xref:mapping of string to any>>

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。

with_origin
bool
默认值: False

返回“源”列名(如果已创建)。

返回

滞后领先特征名称

返回类型

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>
必需

输入数据

返回

包含滞后/领先列的数据帧

返回类型

<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