【发布时间】:2016-02-19 19:49:39
【问题描述】:
我很难理解频谱聚类文档here。
具体来说。
如果您有一个相似度矩阵,例如距离矩阵,其中 0 表示相同的元素,而高值表示非常不同的元素,则可以通过应用高斯将其转换为非常适合算法的相似度矩阵(RBF,热)内核:
np.exp(- X ** 2 / (2. * delta ** 2))
对于我的数据,我有一个大小为(n_samples, n_samples) 的完整距离矩阵,其中大的条目表示不同的对,小的值表示相似的对,零表示相同的条目。 (即唯一的零点沿对角线)。
所以我需要做的就是用affinity = "precomputed" 构建SpectralClustering 对象,然后将转换后的距离矩阵传递给fit_predict。
我坚持建议的转换方程。 np.exp(- X ** 2 / (2. * delta ** 2))。
这里的X 是什么? (n_samples, n_samples) 距离矩阵?
如果是这样,delta 是什么。只是X.max()-X.min()吗?
致电np.exp(- X ** 2 / (2. * (X.max()-X.min()) ** 2)) 似乎是正确的做法。 IE。大条目变得相对较小,小条目相对较大,所有条目都在 0 和 1 之间。对角线全为 1,这是有道理的,因为每个点都与自身最接近。
但我很担心。我想如果作者想让我使用np.exp(- X ** 2 / (2. * (X.max()-X.min()) ** 2)),他会告诉我只使用那个,而不是把delta扔在那里。
所以我想我的问题就是这个。 delta 是什么?
【问题讨论】: