我正在一个相对较小的数据集上训练高斯过程模型,该数据集有 8 个输入特征和 75 个输入数据。
我尝试了不同的内核,发现以下内核(2 RBF + 白噪声)效果最好。
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, WhiteKernel
k1 = sigma_1**2 * RBF(length_scale=length_scale_1)
k2 = sigma_2**2 * RBF(length_scale=length_scale_2)
k3 = WhiteKernel(noise_level=sigma_3**2) # noise terms
kernel = k1 + k2 + k3
我使用 10-fold cv 计算 R^2 分数,发现平均训练 R^2 始终> 0.999,但平均验证 R^2 约为0.65。
看起来模型过拟合了。我想知道我们可以做些什么来防止高斯过程中的过度拟合。
在线性回归中,我们可以添加正则化,在神经网络中,我们可以添加正则化和dropout。
高斯过程呢?