在scikit learn中,GaussianProcessRegressor
model在其参数中包含一个内核和优化器,用于其超参数。
我理解,如果优化器设置为None
,或者如果内核的超参数设置为'fixed'
,那么它们就不能更改
scikit learn中GPR的默认内核是ConstantKernel(1.0, constant_value_bounds="fixed") * RBF(1.0, length_scale_bounds="fixed")
。我假设常量内核在这里有一个用途,但根据我的理解,它只能是1,因此没有任何效果
我的问题是:默认内核和简单的RBF(1.0, length_scale_bounds="fixed")
内核之间有什么实际的区别吗
ConstantKernel(1.0, constant_value_bounds="fixed") * RBF(1.0, length_scale_bounds="fixed")
不是scikit learn或任何其他库中的默认内核,但它被广泛使用,因此我们可以将其视为默认内核。在GP中,我们不将任何内核视为默认内核(源代码:kernel cookbook)关于你的问题,RBF核的方程如下:
这里,
l
是长度尺度,sigma^2
是方差超参数。其他实现,比如GPy,直接将sigma
和l
作为内核的参数。但是,scikit learn选择了不同的方式在sklearn中,
ConstantKernel()
是建模part1
,RBF()
是建模part2
所以,如果我们在这两个部分都使用“固定”参数,没有实际的区别,但是如果它们是可变的,那么它们就不同了,正如我在上面所描述的
相关问题 更多 >
编程相关推荐