高斯过程回归python代码
时间: 2023-09-03 07:09:24 浏览: 151
以下是使用Python中的Scikit-learn库实现高斯过程回归的示例代码:
```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
# 生成数据集
np.random.seed(1)
X = np.linspace(0, 10, 20)
y = np.sin(X) + 0.2 * np.random.randn(20)
# 定义高斯核函数
kernel = C(1.0, (1e-3, 1e3)) * RBF(10, (1e-2, 1e2))
# 创建高斯过程回归模型
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10)
# 拟合数据
gp.fit(X.reshape(-1, 1), y)
# 预测
x_pred = np.linspace(0, 10, 100)
y_pred, y_std = gp.predict(x_pred.reshape(-1, 1), return_std=True)
# 绘图
plt.plot(X, y, 'r.', markersize=10, label='Observations')
plt.plot(x_pred, y_pred, 'b-', label='Prediction')
plt.fill_between(x_pred, y_pred - y_std, y_pred + y_std, alpha=0.2, color='gray')
plt.legend()
plt.show()
```
该代码生成一个包含噪声的正弦函数数据集,并使用高斯核函数创建一个高斯过程回归模型。然后,它拟合数据并预测在0到10之间的100个点处的函数值,并绘制原始数据、预测和置信区间。
阅读全文