在scikitlearn中,如果高斯过程回归的恒常核值是固定的,它会有影响吗?

2024-05-23 23:42:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在scikit learn中,GaussianProcessRegressormodel在其参数中包含一个内核和优化器,用于其超参数。 我理解,如果优化器设置为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")内核之间有什么实际的区别吗


Tags: none参数scikit内核learnlengthfixedgpr
1条回答
网友
1楼 · 发布于 2024-05-23 23:42:16

ConstantKernel(1.0, constant_value_bounds="fixed") * RBF(1.0, length_scale_bounds="fixed")不是scikit learn或任何其他库中的默认内核,但它被广泛使用,因此我们可以将其视为默认内核。在GP中,我们不将任何内核视为默认内核(源代码:kernel cookbook

关于你的问题,RBF核的方程如下:

    part1 = sigma^2
    part2 = exp(((x1-x2)^2)/l^2)
    RBF(x1, x2) =  part1 * part2

这里,l是长度尺度,sigma^2是方差超参数。其他实现,比如GPy,直接将sigmal作为内核的参数。但是,scikit learn选择了不同的方式

在sklearn中,ConstantKernel()是建模part1RBF()是建模part2

所以,如果我们在这两个部分都使用“固定”参数,没有实际的区别,但是如果它们是可变的,那么它们就不同了,正如我在上面所描述的

相关问题 更多 >