3

参考https://stats.stackexchange.com/questions/15798/how-to-calculate-a-gaussian-kernel-effectively-in-numpy,提供了计算预计算内核矩阵的解决方案。

from scipy.spatial.distance import pdist, squareform
X = loaddata() # this is an NxD matrix, where N is number of items and D its dimensions
pairwise_dists = squareform(pdist(X, 'euclidean'))
K = scip.exp(pairwise_dists / s**2)

如果输入是有向图的加权邻接矩阵,如何实现上述 Guassin 内核?

4

1 回答 1

2

如果您已经有了距离矩阵,则可以简单地应用

K = scip.exp(YOUR_DISTANCE_HERE / s**2)

但是,它可能不再是内核。并非所有“相似度分数”都是有效的内核。如果您的距离是有效的马氏距离,那么您可以保证一切都会好起来的。在“任何”距离的情况下 - 任何事情都可能发生。

使用无效内核可能导致:

  1. 优化过程崩溃
  2. 寻找次优解决方案(坏解决方案)
  3. 任何事情,完全没有保证。

也许您应该考虑与高斯核和热扩散密切相关的图核

于 2013-10-09T06:21:30.970 回答