我正在尝试将高斯过程回归模型用于贝叶斯优化部分。GP模型是为了逼近我的目标函数。它有两个输入(变量)(x,y),它们返回一个输出 z。我正在努力了解用于 GP 模型的内核/内核组合。我已经尝试了两个 SE 内核(RBF + RBF 和 RBF x RBF)的乘积和总和,到目前为止,预测并不是那么好。我使用了 81 个训练点(x,y 对)和结果 z 值来训练模型。如果有帮助,我还包括下面的 3D 数据图像和代码。真的,我只需要一些帮助来了解要使用哪些内核/如何构建自定义内核以适应我的数据。任何帮助将不胜感激。
下面是我的代码:
x_train = np.array(list_of_pairs)
y_train = training_data['result'].to_list()
kernel = gp.kernels.RBF(length_scale=0.00000000005, length_scale_bounds=(0.000001, 100000)) * gp.kernels.RBF(length_scale=0.00000000005, length_scale_bounds=(0.000001, 100000))
model = gp.GaussianProcessRegressor(kernel = kernel, n_restarts_optimizer=4)
model.fit(x_train, y_train)
test_sample = [[0.1,57]]
test_sample = np.array(test_sample)
yhat, covar = model.predict(test_sample, return_std=True)
print(yhat, covar)
print(model.kernel_.get_params())