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