gluonts.mx.model.gp_forecaster.gaussian_process 模块#

class gluonts.mx.model.gp_forecaster.gaussian_process.GaussianProcess(sigma: typing.Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], kernel: gluonts.mx.kernels._kernel.Kernel, prediction_length: typing.Optional[int] = None, context_length: typing.Optional[int] = None, num_samples: typing.Optional[int] = None, float_type: typing.Type = <class 'numpy.float64'>, jitter_method: str = 'iter', max_iter_jitter: int = 10, neg_tol: float = -1e-08, diag_weight: float = 1e-06, increase_jitter: int = 10, sample_noise: bool = True, F=None)[source]#

Bases: object

exact_inference(x_train: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], y_train: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], x_test: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]][source]#
参数
  • x_train – 训练集特征,形状为 (batch_size, context_length, num_features)。

  • y_train – 训练标签,形状为 (batch_size, context_length)。

  • x_test – 测试集特征,形状为 (batch_size, prediction_length, num_features)。

返回

Tensor

预测 GP 样本,形状为 (batch_size, prediction_length, num_samples)。

Tensor

预测 GP 均值,形状为 (batch_size, prediction_length)。

Tensor

预测 GP 标准差,形状为 (batch_size, prediction_length)。

返回类型

Tuple

log_prob(x_train: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], y_train: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

此方法计算负边际对数似然。

\begin{aligned} \frac{1}{2} [d \log(2\pi) + \log(|K|) + y^TK^{-1}y], \end{aligned}

其中 \(d\) 是数据点的数量。这可以用 Cholesky 分解因子 \(L\) 表示为

\begin{aligned} \log(|K|) = \log(|LL^T|) &= \log(|L||L|^T) = \log(|L|^2) = 2\log(|L|) \\ &= 2\log\big(\prod_i^n L_{ii}\big) = 2 \sum_i^N \log(L_{ii}) \end{aligned} 和
\begin{aligned} y^TK^{-1}y = (y^TL^{-T})(L^{-1}y) = (L^{-1}y)^T(L^{-1}y) = ||L^{-1}y||_2^2. \end{aligned}
参数
  • x_train – 训练集特征,形状为 (batch_size, context_length, num_features)。

  • y_train – 训练标签,形状为 (batch_size, context_length)。

返回

负边际对数似然,形状为 (batch_size,)

返回类型

Tensor

static plot(ts_idx: int, x_train: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, y_train: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, x_test: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, mean: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, std: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, samples: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, axis: Optional[Tuple[float, float, float, float]] = None) None[source]#

此方法绘制了测试点处 GP 样本的分布(实线),以及预测均值(红色虚线)。灰色区域显示了预测均值上下两个标准差范围。训练点显示为蓝色圆点。

参数
  • ts_idx – 要绘制的时间序列索引

  • x_train – 训练集特征,形状为 (batch_size, context_length, num_features)。

  • y_train – 训练标签,形状为 (batch_size, context_length)。

  • x_test – 测试集特征,形状为 (batch_size, prediction_length, num_features)。

  • mean – GP 均值,形状为 (batch_size, prediction_length)。

  • std – GP 标准差,形状为 (batch_size, prediction_length, 1)。

  • samples – GP 样本,形状为 (batch_size, prediction_length, num_samples)。

  • axis – 绘图坐标轴限制

sample(mean: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], covariance: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
参数
  • covariance – GP 协方差矩阵,形状为 (batch_size, prediction_length, prediction_length)。

  • mean – GP 均值向量,形状为 (batch_size, prediction_length)。

返回

从形状为 (batch_size, prediction_length, num_samples) 的高斯过程进行抽样,其中 \(L\) 是协方差矩阵的矩阵平方根(Cholesky 分解因子),对角线上添加了噪声容差,即 \(Lz\),其中 \(z \sim N(0,I)\),并且假设均值为零。

返回类型

Tensor