gluonts.model.npts 包#
- class gluonts.model.npts.KernelType(value)[source]#
- 基类: - str,- enum.Enum- 一个枚举。 - exponential = 'exponential'#
 - uniform = 'uniform'#
 
- class gluonts.model.npts.NPTSPredictor(prediction_length: int, context_length: Optional[int] = None, kernel_type: gluonts.model.npts._predictor.KernelType = KernelType.exponential, exp_kernel_weights: Union[float, List[float]] = 1.0, use_seasonal_model: bool = True, use_default_time_features: bool = True, num_default_time_features: int = 1, feature_scale: float = 1000.0)[source]#
- 基类: - gluonts.model.predictor.RepresentablePredictor- 非参数时间序列预测器 (Non-Parametric Time Series Forecaster) 的实现。 - 时间步长 \(T\) 的 NPTS 预测是时间序列的先前值之一(这些值可以是已知值或预测值),根据 (未归一化的) 分布 \(q_T(t) > 0\) 进行采样,其中 \(0 <= t < T\)。 - 分布 \(q_T\) 用特征映射 \(f(t)\) 来表达,它将时间步长 \(t\) 与 \(D\) 维特征映射 \([f_1(t), ..., f_D(t)]\) 相关联。有关特征映射的更多详细信息,请参见下文。 - 我们提供两种类型的分布核。 - 指数核 (NPTS Forecaster) - 指数 核的采样分布 \(q_T\) 可以是加权的或非加权的,其定义如下。 \[\begin{split}q_T(t) = \begin{cases} \exp( - \sum_{i=1}^D \alpha \left| f_i(t) - f_i(T) \right| ) & \text{未加权}\\ \exp( - \sum_{i=1}^D \alpha_i \left| f_i(t) - f_i(T) \right| ) & \text{加权} \end{cases}\end{split}\]- 在上述定义中,\(\alpha > 0\) 和 \(\alpha_i > 0\) 是用户定义的采样权重。 - 均匀核 (Climatological Forecaster) - 均匀 核的采样分布 \(q_T\) 可以是季节性的或非季节性的。季节性版本的定义如下。 \[\begin{split}q_T(t) = \begin{cases} 1.0 & \text{如果 }f(t) = f(T) \\ 0.0 & \text{否则} \end{cases}\end{split}\]- 非季节性版本被定义为常数映射。 \[q_T(t) = 1.0\]- 特征映射 - 特征映射 \(f\) 是可配置的。特例 \(f(t) = [t]\) 导致所谓的朴素 NPTS。对于非季节性模型,默认情况下,NPTS Forecaster (即,使用指数核) 的 \(f(t) = [t]\),而 Climatological Forecaster (即,均匀核) 没有特征。 - 对于季节性 NPTS 和季节性 Climatological,时间特征根据时间序列的频率确定,并添加到默认特征映射中。 - 不同频率的默认时间特征是 \[\begin{split}f(t) = \begin{cases} [\mathit{MINUTE\_OF\_HOUR}(t)] & \text{for minutely frequency}\\ [\mathit{HOUR\_OF\_DAY}(t)] & \text{for hourly frequency}\\ [\mathit{DAY\_OF\_WEEK}(t)] & \text{for daily frequency}\\ [\mathit{DAY\_OF\_MONTH}(t)] & \text{for weekly frequency}\\ [\mathit{MONTH\_OF\_YEAR}(t)] & \text{for monthly frequency} \end{cases}\end{split}\]- 在预测期间,可以在 feat_dynamic_real 中提供自定义特征(这些特征必须在训练和预测范围内都定义)。如果模型是季节性的,这些自定义特征将添加到默认特征映射中,否则它们将被忽略。如果 feat_dynamic_real 非空,可以通过将标志 use_default_time_features 设置为 False 来禁用默认时间特征。 - 参数
- prediction_length – 要预测的时间步长数量 
- context_length – 在进行预测之前考虑的时间步长数量(默认值 None 对应于考虑历史中所有时间步长的情况) 
- kernel_type – 要使用的核类型(“exponential” 或 “uniform”) 
- exp_kernel_weights – 在指数核中用于特征的单个权重 \(\alpha\) 或权重列表;目前,我们使用单个权重版本,对于季节性 NPTS,我们仅将 \(\alpha\) 按季节性特征的 feature_scale 进行重新缩放。 
- use_seasonal_model – 是否使用季节性变体 
- use_default_time_features – 基于时间序列频率导出的时间特征 
- num_default_time_features – 此参数未公开;此参数用于更好地控制默认时间特征的数量,因为 date_feature_set 默认添加了太多特征。 
- feature_scale – 时间(季节性)特征的比例因子,以便以更高的概率采样过去的季节 
 
 - predict(dataset: gluonts.dataset.Dataset, num_samples: int = 100, **kwargs) Iterator[gluonts.model.forecast.SampleForecast][source]#
- 计算给定数据集中时间序列的预测。此方法在此抽象类中未实现;请使用其子类之一。:param dataset: 包含要预测的时间序列的数据集。 - 返回
- 预测结果的迭代器,顺序与提供的数据集迭代器相同。 
- 返回类型
- Iterator[Forecast] 
 
 - predict_time_series(ts: pandas.core.series.Series, num_samples: int, custom_features: Optional[numpy.ndarray] = None, item_id: Optional[Any] = None) gluonts.model.forecast.SampleForecast[source]#
- 给定一个训练时间序列,此方法生成包含 prediction_length 个时间点预测样本的 Forecast 对象。 - 通过加权采样生成预测,权重由 NPTSPredictor 的核类型和特征映射确定。 - 参数
- ts – 训练时间序列对象 
- custom_features – 要使用的自定义特征(协变量) 
- num_samples – 要抽取的样本数量 
- item_id – 用于标识时间序列的 item_id 
 
- 返回
- 对提供的 ts 和 custom_features 的预测。 
- 返回类型