TimeSeriesPredictor.predict

TimeSeriesPredictor.predict(data: TimeSeriesDataFrame | DataFrame | Path | str, known_covariates: TimeSeriesDataFrame | DataFrame | Path | str | None = None, model: str | None = None, use_cache: bool = True, random_seed: int | None = 123) TimeSeriesDataFrame[source]

返回给定数据集的分位数和均值预测,从每个时间序列的末尾开始。

参数:
  • data (Union[TimeSeriesDataFrame, pd.DataFrame, Path, str]) –

    需要进行预测的历史时间序列数据。

    data 中,列和静态特征的名称及 dtypes 必须与用于训练预测器的 train_data 匹配。

    如果提供的数据是 pandas.DataFrame,AutoGluon 将尝试将其转换为 TimeSeriesDataFrame。如果提供的是 strPath,AutoGluon 将尝试加载此文件。

  • known_covariates (Union[TimeSeriesDataFrame, pd.DataFrame, Path, str], 可选的) –

    如果在创建预测器时指定了 known_covariates_names,则需要在预测范围内的每个时间序列提供已知协变量的值。具体来说

    • 必须包含 known_covariates_names 中列出的所有列。

    • 必须包含输入 data 中存在的所有 item_id 值。

    • 必须包含输入 data 中每个序列结束后,完整预测范围(即 prediction_length 个时间步)的 timestamp 值。

    您可以使用 autogluon.timeseries.TimeSeriesPredictor.make_future_data_frame() 生成包含 known_covariates 数据框所需 item_idtimestamp 组合的模板。

    请参阅下面的示例。

  • model (str, 可选的) – 您希望用于预测的模型名称。默认情况下,将使用训练期间表现最好的模型(具有最高验证分数)。

  • random_seed (intNone, 默认值 = 123) – 如果提供,将固定所有模型的随机数生成器种子。这可以保证大多数模型的结果可复现(GPU 上训练的模型除外,因为 GPU 操作的非确定性)。

  • use_cache (bool, 默认值 = True) – 如果为 True,将尝试使用缓存的预测结果。如果为 False,将忽略缓存的预测结果。如果在创建 TimeSeriesPredictorcache_predictions 设置为 False,则此参数将被忽略。

示例

>>> print(data)
                    target  promotion  price
item_id timestamp
A       2020-01-05      20          0   19.9
        2020-01-06      40          1    9.9
        2020-01-07      32          0   15.0
B       2020-03-01      13          0    5.0
        2020-03-02      44          1    2.9
        2020-03-03      72          1    2.9
>>> predictor = TimeSeriesPredictor(prediction_length=2, known_covariates_names=["promotion", "price"]).fit(data)
>>> print(future_known_covariates)
                    promotion  price
item_id timestamp
A       2020-01-08          1   12.9
        2020-01-09          1   12.9
B       2020-03-04          0    5.0
        2020-03-05          0    7.0
>>> predictor.predict(data, known_covariates=future_known_covariates)
                      mean
item_id timestamp
A       2020-01-08    30.2
        2020-01-09    27.0
B       2020-03-04    17.1
        2020-03-05     8.3