我正在尝试将多个观察结果拟合到单个高斯过程。
我尝试像这样拟合两个观测值(Y)的数据:
import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C
# Example data
# Input data X
X = np.array([[1.0], [2.0], [3.0], [4.0], [5.0]])
# Output data Y
Y = np.array([[1.5, 2.5], [2.5, 3.5], [3.5, 4.5], [4.5, 5.5], [5.5, 6.5]])
kernel = C(1.0, (1e-4, 1e1)) * RBF(1.0, (1e-4, 1e1))
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10)
# Fitting the model
gp.fit(X, Y)
mean_prediction, cov_prediction = gp.predict(X, return_cov=True)
我得到两个mean_prediction数组和两个cov_prediction矩阵。但我想要一个与单个拟合 GP 对应的观测值具有相同维度的单个均值和协方差矩阵。我怎样才能实现它?
如果你按照以下方式拟合它们,你应该只得到一个后验平均值,我认为理论上你也应该得到两种平均值,但它们是相同的,所以模型只会给你一次:
# Input data X
X = np.array([[1.0], [2.0], [3.0], [4.0], [5.0],[1.0], [2.0], [3.0], [4.0], [5.0]])
# Output data Y
Y = np.array([[1.5], [2.5], [2.5], [3.5], [3.5], [4.5], [4.5], [5.5], [5.5], [6.5]])
kernel = C(1.0, (1e-4, 1e1)) * RBF(1.0, (1e-4, 1e1))
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10)
# Fitting the model
gp.fit(X, Y)
mean_prediction, cov_prediction = gp.predict([[1.0], [2.0], [3.0], [4.0], [5.0]], return_cov=True)