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