我正在尝试评估 scikit 学习包中的母体内核。所以基本上,我做这样的事情
import numpy as np
from sklearn.gaussian_process.kernels import Matern as skMatern
locs=np.array([[0, 0], [0, 0.5], [0.5, 0.7]])
K = skMatern(nu=1.8, length_scale=0.2)
covMat = K(locs)
我的问题是我希望能够确定内核计算点之间距离的方式。
换句话说,我上面的代码计算
哪里是 Matern 协方差函数和 , 是
locs
的行大批。我想要的是计算并且能够自己指定 d (也许作为距离矩阵)。我一直在看scikit-learn
文档,但一直无法弄清楚如何去做。谢谢你的帮助!
最佳答案
有点晚了,但它可以帮助别人。如 d
是你的距离矩阵,你可以写:
import numpy as np
from sklearn.gaussian_process.kernels import Matern
from sklearn.metrics import pairwise_distances
m, n = 10, 3
d = pairwise_distances(np.random.randn(m, n))
K = Matern()(0, d.ravel()[:, np.newaxis]).reshape(d.shape)
这行代码得益于 0
广播到正确的形状。
关于python - 使用自定义距离评估 Matern 内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48810310/