假设我们有二维向量:
你怎么设置对于高斯相似核:
假设我们有二维向量:
根据 Spectral Clustering ( von Luxburg ) 中的参考论文, 简单地设置为 1。可以通过一些可视化检查应用进一步的调整,但我没有找到有关设置此参数的任何讨论。
使用下面的代码片段可以看到效果:
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.distance import pdist
def gausker(x1,x2,sigma):
dist = np.linalg.norm(x1-x2)
return np.exp(-dist**2/(2.*(sigma**2.)))
data = np.array([[0,0],[1,1],[1,0],[0,1],[10,10],[10,9],[9,10],[9,9]])
plt.figure()
plt.plot(data[:,0],data[:,1],'o',ms=20)
plt.show()
s = np.std(pdist(data))
for sigma in [1, s, 10, 100]:
gaus = np.zeros((8,8))
for ii in range(8):
for jj in range(8):
gaus[ii,jj] = gausker(data[ii,:],data[jj,:],sigma)
plt.figure()
plt.imshow(gaus,extent=[0, 1, 0, 1])
plt.colorbar()
plt.title(str(sigma))
plt.show()
对于机器学习算法来说最好有更多的区别。高斯相似性核关心局部相似性。图像显示内核
在概念上类似于 k 近邻图,因为它考虑了局部邻域并且几乎忽略了相距较远的两个节点之间的关系。
如果您进行谱聚类,您可能会发现以下感兴趣的论文:
https://papers.nips.cc/paper/2619-self-tuning-spectral-clustering.pdf
作者使用了一个 sigma,它使每个样本在本地适应本地环境。根据我的经验,在处理多尺度数据时很有用。