ForecastingPipelineWrapperBase 类

预测模型包装器的基类。

构造函数

ForecastingPipelineWrapperBase(ts_transformer: TimeSeriesTransformer | None = None, y_transformer: Pipeline | None = None, metadata: Dict[str, Any] | None = None)

参数

名称 说明
ts_transformer
默认值: None
y_transformer
默认值: None
metadata
默认值: None

方法

align_output_to_input

将转换后的输出数据帧与输入数据帧对齐。

注意: 转换后将按引用修改,不会创建任何副本。 :p aram X_input:输入数据帧。 :p已转换:转换后的数据帧。 :returns: transfotmed 数据帧及其原始索引,但排序方式为 X_input。

fit

将模型与输入 X 和 y 拟合。

forecast

对数据帧执行预测X_pred。

forecast_quantiles

从拟合管道中获取预测和分位数。

is_grain_dropped

如果要删除粒度,则返回 true。

preaggregate_data_set

聚合预测数据集。

注意: 此方法不保证数据集将聚合。 仅当数据集包含重复的时间戳或网格外日期时,才会发生这种情况。 :p aram df:要聚合的数据集。 :p atam y:目标值。 :p aram is_training_set:如果为 true,则数据表示训练集。 :return:如果不需要聚合,则聚合或完好无损的数据集。

preprocess_pred_X_y

预处理预测 X 和 y。

rolling_evaluation

“在给定的测试集上生成滚动原点的预测。

每次迭代都会对当前原点的下一个“max_horizon”周期进行预测,然后按地平线时间持续时间推进原点。 设置每个预测的预测上下文,以便预测器使用当前原点时间之前的实际目标值来构造滞后特征。

此函数返回与测试集中的实际值联接的滚动预测的串联数据帧。

此方法已弃用,将在将来的版本中删除。 请改用rolling_forecast()。

rolling_forecast

在测试集上生成滚动原点的预测。

每次迭代都会使用信息提前预测最大地平线期,然后按“步骤”时间段推进原点。 设置每个预测的预测上下文,以便预测器使用当前原点时间之前的实际目标值来构造回溯功能。

此函数返回一个数据帧,其中包含与测试集中的实际值联接的滚动预测。 返回的数据帧中的列如下所示:

  • 时间序列 ID 列(可选)。 当用户提供时,将使用给定的列名称。

  • 预测源列,为每一行提供原点时间。

    列名:存储为对象成员变量forecast_origin_column_name。

  • 时间列。 将使用用户提供的列名。

  • 预测值列。 列名:存储为对象成员forecast_column_name

  • 实际值列。 列名:存储为对象成员actual_column_name

short_grain_handling

如果为模型启用了短粒度处理或缺粒度处理,则返回 true。

static_preaggregate_data_set

聚合预测数据集。

注意: 此方法不保证数据集将聚合。 仅当数据集包含重复的时间戳或网格外日期时,才会发生这种情况。 :p aram ts_transformer:用于训练的时报转换器。 :p aram time_column_name:时间列的名称。 :p aram grain_column_names:粒度列名称列表。 :p aram df:要聚合的数据集。 :p atam y:目标值。 :p aram is_training_set:如果为 true,则数据表示训练集。 :return:如果不需要聚合,则聚合或完好无损的数据集。

align_output_to_input

将转换后的输出数据帧与输入数据帧对齐。

注意: 转换后将按引用修改,不会创建任何副本。 :p aram X_input:输入数据帧。 :p已转换:转换后的数据帧。 :returns: transfotmed 数据帧及其原始索引,但排序方式为 X_input。

align_output_to_input(X_input: DataFrame, transformed: DataFrame) -> DataFrame

参数

名称 说明
X_input
必需
transformed
必需

fit

将模型与输入 X 和 y 拟合。

fit(X: DataFrame, y: ndarray) -> ForecastingPipelineWrapperBase

参数

名称 说明
X
必需

输入 X 数据。

y
必需

输入 y 数据。

forecast

对数据帧执行预测X_pred。

forecast(X_pred: DataFrame | None = None, y_pred: ndarray | DataFrame | None = None, forecast_destination: Timestamp | None = None, ignore_data_errors: bool = False) -> Tuple[ndarray, DataFrame]

参数

名称 说明
X_pred

预测数据帧以时间连续的方式组合X_past和X_future。 X_pred中的空值将进行插补。

默认值: None
y_pred

将y_past的明确值和Y_future缺失值组合在一起的目标值。 如果“无”,则每个X_pred都将进行预测。

默认值: None
forecast_destination
<xref:pandas.Timestamp>

Forecast_destination:时间戳值。 所有谷物的预测都将一路到达forecast_destination时间。 字典输入 { 粒度 -> 时间戳 } 将不接受。 如果未给出forecast_destination,则它将补为每个谷物X_pred的最后一次。

默认值: None
ignore_data_errors

忽略用户数据中的错误。

默认值: False

返回

类型 说明

Y_pred,子帧对应于相应的预测填充Y_future。 Y_past中的任何缺失值都将由插补器填充。

forecast_quantiles

从拟合管道中获取预测和分位数。

forecast_quantiles(X_pred: DataFrame | None = None, y_pred: ndarray | DataFrame | None = None, quantiles: float | List[float] | None = None, forecast_destination: Timestamp | None = None, ignore_data_errors: bool = False) -> DataFrame

参数

名称 说明
X_pred

预测数据帧以时间连续的方式组合X_past和X_future。 X_pred中的空值将进行插补。

默认值: None
y_pred

将y_past的明确值和Y_future缺失值组合在一起的目标值。 如果“无”,则每个X_pred都将进行预测。

默认值: None
quantiles
floatlist of <xref:floats>

我们想要预测的分量列表。

默认值: None
forecast_destination
<xref:pandas.Timestamp>

Forecast_destination:时间戳值。 所有谷物的预测都将一路到达forecast_destination时间。 字典输入 { 粒度 -> 时间戳 } 将不接受。 如果未给出forecast_destination,则它将补为每个谷物X_pred的最后一次。

默认值: None
ignore_data_errors

忽略用户数据中的错误。

默认值: False

返回

类型 说明

一个数据帧,其中包含在请求的分位时进行的列和预测。

is_grain_dropped

如果要删除粒度,则返回 true。

is_grain_dropped(grain: Tuple[str] | str | List[str]) -> bool

参数

名称 说明
grain
必需

要测试它是否会被删除的粒度。

返回

类型 说明

如果删除粒度,则为 True。

preaggregate_data_set

聚合预测数据集。

注意: 此方法不保证数据集将聚合。 仅当数据集包含重复的时间戳或网格外日期时,才会发生这种情况。 :p aram df:要聚合的数据集。 :p atam y:目标值。 :p aram is_training_set:如果为 true,则数据表示训练集。 :return:如果不需要聚合,则聚合或完好无损的数据集。

preaggregate_data_set(df: DataFrame, y: ndarray | None = None, is_training_set: bool = False) -> Tuple[DataFrame, ndarray | None]

参数

名称 说明
df
必需
y
默认值: None
is_training_set
默认值: False

preprocess_pred_X_y

预处理预测 X 和 y。

preprocess_pred_X_y(X_pred: DataFrame | None = None, y_pred: ndarray | DataFrame | None = None, forecast_destination: Timestamp | None = None) -> Tuple[DataFrame, DataFrame | ndarray, Dict[str, Any]]

参数

名称 说明
X_pred
默认值: None
y_pred
默认值: None
forecast_destination
默认值: None

rolling_evaluation

“在给定的测试集上生成滚动原点的预测。

每次迭代都会对当前原点的下一个“max_horizon”周期进行预测,然后按地平线时间持续时间推进原点。 设置每个预测的预测上下文,以便预测器使用当前原点时间之前的实际目标值来构造滞后特征。

此函数返回与测试集中的实际值联接的滚动预测的串联数据帧。

此方法已弃用,将在将来的版本中删除。 请改用rolling_forecast()。

rolling_evaluation(X_pred: DataFrame, y_pred: DataFrame | ndarray, ignore_data_errors: bool = False) -> Tuple[ndarray, DataFrame]

参数

名称 说明
X_pred
必需

预测数据帧以时间连续的方式组合X_past和X_future。 X_pred中的空值将进行插补。

y_pred
必需

对应于X_pred的目标值。

ignore_data_errors

忽略用户数据中的错误。

默认值: False

返回

类型 说明

Y_pred,子帧对应于相应的预测填充Y_future。 Y_past中的任何缺失值都将由插补器填充。

rolling_forecast

在测试集上生成滚动原点的预测。

每次迭代都会使用信息提前预测最大地平线期,然后按“步骤”时间段推进原点。 设置每个预测的预测上下文,以便预测器使用当前原点时间之前的实际目标值来构造回溯功能。

此函数返回一个数据帧,其中包含与测试集中的实际值联接的滚动预测。 返回的数据帧中的列如下所示:

  • 时间序列 ID 列(可选)。 当用户提供时,将使用给定的列名称。

  • 预测源列,为每一行提供原点时间。

    列名:存储为对象成员变量forecast_origin_column_name。

  • 时间列。 将使用用户提供的列名。

  • 预测值列。 列名:存储为对象成员forecast_column_name

  • 实际值列。 列名:存储为对象成员actual_column_name

rolling_forecast(X_pred: DataFrame, y_pred: ndarray, step: int = 1, ignore_data_errors: bool = False) -> DataFrame

参数

名称 说明
X_pred
必需
<xref:pd.DataFrame>

预测数据帧

y_pred
必需
<xref:np.ndarray>

与X_pred中的行对应的目标值

step
int

在每个迭代中推进预测窗口的周期数。

默认值: 1
ignore_data_errors

忽略用户数据中的错误。

默认值: False

返回

类型 说明
<xref:pd.DataFrame>

滚动预测的数据帧

short_grain_handling

如果为模型启用了短粒度处理或缺粒度处理,则返回 true。

short_grain_handling() -> bool

static_preaggregate_data_set

聚合预测数据集。

注意: 此方法不保证数据集将聚合。 仅当数据集包含重复的时间戳或网格外日期时,才会发生这种情况。 :p aram ts_transformer:用于训练的时报转换器。 :p aram time_column_name:时间列的名称。 :p aram grain_column_names:粒度列名称列表。 :p aram df:要聚合的数据集。 :p atam y:目标值。 :p aram is_training_set:如果为 true,则数据表示训练集。 :return:如果不需要聚合,则聚合或完好无损的数据集。

static static_preaggregate_data_set(ts_transformer: TimeSeriesTransformer, time_column_name: str, grain_column_names: List[str], df: DataFrame, y: ndarray | None = None, is_training_set: bool = False) -> Tuple[DataFrame, ndarray | None]

参数

名称 说明
ts_transformer
必需
time_column_name
必需
grain_column_names
必需
df
必需
y
默认值: None
is_training_set
默认值: False

属性

actual_column_name

forecast_column_name

forecast_origin_column_name

grain_column_list

max_horizon

返回模型中使用的最大 hiorizon。

origin_col_name

返回源列名称。

target_lags

返回目标滞后时间(如果有)。

target_rolling_window_size

返回滚动窗口的大小。

time_column_name

返回时间列的名称。

user_target_column_name

y_max_dict

按时序 ID 返回具有最大目标值的字典

y_min_dict

按时序 ID 返回具有最小目标值的字典

FATAL_NO_TARGET_IMPUTER

FATAL_NO_TARGET_IMPUTER = 'No target imputers were found in TimeSeriesTransformer.'

FATAL_NO_TS_TRANSFORM

FATAL_NO_TS_TRANSFORM = 'The time series transform is absent. Please try training model again.'