3

我正在使用scikit-learn Python 库对一个需要七个输入的函数执行贝叶斯优化(在高斯过程回归之上)。其中四个输入代表物理角度,因此高斯核在其中应该是周期性的;一个自然的选择是sklearn.gaussian_process.kernels.ExpSineSquared。但是,我不想武断地强制函数在其他三个中是周期性的。

根据The Kernel Cookbook,正确的方法是简单地将ExpSineSquared周期性变量的内核与非周期性内核(比如 Matérn 内核)相乘,并获得类似

ExpSineSquared(x[:3])*Matern(x[3:])

(其中x是参数的 7 向量)。有人会认为实现的内核Productsklearn.gaussian_process.kernels是可行的方法,但据我所知,这不允许我选择哪些参数是周期性的,哪些不是;使用Product内核将有效地给我ExpSineSquared(x)*Matern(x).

由于我对 sklearn 中的 GPR 不是很有经验,所以实现所需内核的最佳方法是什么?

4

0 回答 0