高斯过程回归代码
时间: 2023-08-01 08:06:54 浏览: 47
高斯过程回归(Gaussian Process Regression,GPR)是一种用于回归分析的机器学习方法。下面是一个 Python 的 GPR 示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C
# 定义训练数据
X = np.array([-3, -2, -1, 1]).reshape(-1, 1)
y = np.sin(X)
# 定义高斯过程回归模型
kernel = C(1.0, (1e-3, 1e3)) * RBF(10, (1e-2, 1e2))
gpr = GaussianProcessRegressor(kernel=kernel, alpha=0.1, n_restarts_optimizer=10)
# 训练模型
gpr.fit(X, y)
# 定义测试数据
x = np.linspace(-4, 4, 100).reshape(-1, 1)
# 预测结果
y_pred, sigma = gpr.predict(x, return_std=True)
# 绘制结果
plt.plot(X, y, 'ro', label='训练数据')
plt.plot(x, y_pred, 'b-', label='预测结果')
plt.fill(np.concatenate([x, x[::-1]]),
np.concatenate([y_pred - 1.96 * sigma,
(y_pred + 1.96 * sigma)[::-1]]),
alpha=.5, fc='b', ec='None', label='95% 置信区间')
plt.legend(loc='upper left')
plt.show()
```
在上面的代码中,首先定义训练数据 X 和 y,其中 X 是一个列向量,y 是对应的函数值。然后,定义了一个高斯过程回归模型 gpr,使用 RBF 核函数和常数核函数构建。接着,使用训练数据对模型进行训练,调用 gpr.fit(X, y)。最后,定义了测试数据 x,调用 gpr.predict(x, return_std=True) 进行预测,同时返回预测结果和标准差。最后,使用 matplotlib 绘制了训练数据、预测结果和 95% 置信区间的图像。
这个例子演示了如何使用 Python 中的 scikit-learn 库进行高斯过程回归。