ForecastingPipelineWrapperBase 类

预测模型包装器的基类。

继承
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

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

注意:转换后的项将按引用进行修改,不会创建任何副本。 :param X_input:输入数据帧。 :param transformed:转换后的数据帧。 :returns:转换后的数据帧及其原始索引,但按 X_input 中的方式排序。

fit

使用输入 X 和 y 拟合模型。

forecast

对数据帧 X_pred 执行预测。

forecast_quantiles

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

is_grain_dropped

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

preaggregate_data_set

聚合预测数据集。

注意:此方法不保证会聚合数据集。 只有当数据集包含重复时间戳或网格外日期时,才发生这种情况。 :param df:要聚合的数据集。 :patam y:目标值。 :param is_training_set:如果为 True,则数据表示训练集。 :return:如果不需要聚合,则为聚合或完整的数据集。

preprocess_pred_X_y

预处理预测 X 和 y。

rolling_evaluation

“基于给定测试集对滚动原点生成预测。

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

此函数返回与测试集中的实际值相结合的滚动预测的串联 DataFrame。

此方法已弃用,并将在将来的版本中删除。 请改用 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 time_column_name:时间列的名称。 :p grain_column_names:粒度列名的列表。 :param df:要聚合的数据集。 :patam y:目标值。 :param is_training_set:如果为 True,则数据表示训练集。 :return:如果不需要聚合,则为聚合或完整的数据集。

align_output_to_input

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

注意:转换后的项将按引用进行修改,不会创建任何副本。 :param X_input:输入数据帧。 :param transformed:转换后的数据帧。 :returns:转换后的数据帧及其原始索引,但按 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 时间。 不接受字典输入 { grain -> timestamp }。 如果未提供 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 时间。 不接受字典输入 { grain -> timestamp }。 如果未提供 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

聚合预测数据集。

注意:此方法不保证会聚合数据集。 只有当数据集包含重复时间戳或网格外日期时,才发生这种情况。 :param df:要聚合的数据集。 :patam y:目标值。 :param 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”周期进行预测,然后按时间范围持续时间推进原点。 设置每个预测的预测上下文,以便预测器使用当前源时间之前的实际目标值来构造滞后特征。

此函数返回与测试集中的实际值相结合的滚动预测的串联 DataFrame。

此方法已弃用,并将在将来的版本中删除。 请改用 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 time_column_name:时间列的名称。 :p grain_column_names:粒度列名的列表。 :param df:要聚合的数据集。 :patam y:目标值。 :param 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

返回模型中使用的最大范围。

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.'