python - 在 sk learn 中为 2D 高斯过程回归器创建内核
问题描述
我正在尝试将高斯过程回归模型用于贝叶斯优化部分。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())
解决方案
推荐阅读
- netlogo - 在设置时创建一次海龟,而不是在每个滴答声中
- pandas - 使用 matplotlib 绘制 pandas 数据框时管理 xticks
- java - 为什么不同类型的空集合相等?
- angular - 如何在tinymce编辑器中绑定click或keydown事件
- node.js - 无法将数据推送/更新到现有的 mongo 对象中
- python - 如何从 CSV 文件中删除空白行?
- amazon-web-services - 我可以在 aws 中停止一个现场实例,就像我可以停止并启动一个按需 ec2 实例一样
- angular - 如何用角度4在chartjs画布中包装标签的文本
- ruby-on-rails - 使用 railsroady 从特定模型生成子方案
- ruby-on-rails - 如何使用 Rails 5 和 I18n 复数 human_attribute_name?