什么各向异性方法用于高斯过程RBF内核?

时间:2018-04-27 16:20:52

标签: scikit-learn

scikit-learn docs提到高斯过程的RBF内核具有各向同性变量和各向异性变量。很明显各向同性变体是什么意思,因为这是介绍性文本中介绍的高斯过程的“基本”版本。但是,实施哪种各向异性变体并不明显。在the text by Rasmussen(第89页)中提到了几个选项。有谁知道sklearn模块sklearn.gaussian_process.kernels.RBF

中实施了哪个版本

1 个答案:

答案 0 :(得分:2)

这个答案有点晚了,但是它仍然可以帮助您或其他人。 如果您仔细查看\ sklearn \ gaussian_process \ kernel.py中的RBF类,则会发现以下描述:

Parameters
----------
length_scale : float or array with shape (n_features,), default: 1.0
    The length scale of the kernel. If a float, an isotropic kernel is
    used. If an array, an anisotropic kernel is used where each dimension
    of l defines the length-scale of the respective feature dimension.

length_scale_bounds : pair of floats >= 0, default: (1e-5, 1e5)
    The lower and upper bound on length_scale

因此,我的假设是您需要传递一个length_scale数组“具有与输入x相同的维数”(请参见scikit - Gaussian Processes)。
为了更精确地回答关于实现哪种各向异性的问题,我的建议(无需进一步检查代码)将是通过以下方式操纵欧几里得距离(请参见Rasmussen):

r^2(x, x') = (x - x').T * M * (x - x'),

其中M是对角矩阵,每个方向(相对于您的坐标系)具有相应的长度比例(实际上是1 / l ^ 2)。