我想使用我在Scikit- training的GaussianProcessRegressor中的训练数据来优化内核参数或超参数。
X:二维笛卡儿坐标作为输入数据
y:无线电信号强度(RSS)在二维坐标点作为观测输出。
我已经安装了python和Scikit-learn软件。我已经成功地测试了样本代码。我能够用训练数据预测测试点的RSS。我使用平方指数核。
我希望用梯度下降、群智能和信任区域反射算法等不同的优化算法来训练内核参数(超参数)。
我了解到,在GaussianProcessRegressor类的scikit中,优化器是一个参数,我可以使用自己的优化算法。因为它是可调用的,所以我需要为它编写自己的函数/方法。我可以在GaussianProcessRegressor类中使用任何内置库(优化算法库)吗?是否有这样的库可供python使用?有谁能提供在GaussianProcessRegressor中使用内核参数优化算法的示例代码吗?我了解到,我们使用训练数据集来优化超参数。有谁能提供任何关于训练数据集与优化算法的关联的见解吗?
谢谢!
发布于 2018-05-07 22:26:54
给定scikit-learn的API,您为每个优化器创建一个单独的实例,并比较结果,看看哪个优化器做出了更好的预测。看起来是这样的:
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF
gp1 = GaussianProcessRegressor(kernel=RBF, optimizer=optimizer1)
gp1.fit(X, y)
y_pred1 = gp1.predict(x)
gp2 = GaussianProcessRegressor(kernel=RBF, optimizer=optimizer2)
gp2.fit(X, y)
y_pred2 = gp2.predict(x)
这篇博客文章给出了拟合高斯过程的一般概述,包括科学知识学习的GaussianProcessRegressor.
https://datascience.stackexchange.com/questions/31194
复制相似问题