sklearn 如何计算谱聚类的最近邻亲和矩阵?
How does sklearn compute nearest-neighbor affinity matrix for spectral clustering?
天真地,如果我将最近邻居的数量指定为 k,那么对于每个节点,它会伸出手寻找最近的 k 个节点并将它们的亲和力指定为 1。
但是,我观察到sklearn谱聚类最近邻生成的亲和矩阵不只包含0和1。是因为最近邻居列表中可能存在联系吗?所以我将 1/n 分配给 n 个同样接近的相邻节点?
sklearn spectral clustering "nearest neighbor" 选项计算出的亲和矩阵中的值为 0、1/2 和 1。
值0和1很容易理解,但是1/2项是怎么产生的呢?
注意k近邻的概念对于两个节点是非对称的,因此,使用k近邻得到的亲和矩阵A是非对称的。但是谱聚类使用的相似度矩阵是对称的,因此谱聚类取A和A.T.
的平均值
1/2 值来自 A 中的不对称元素。
天真地,如果我将最近邻居的数量指定为 k,那么对于每个节点,它会伸出手寻找最近的 k 个节点并将它们的亲和力指定为 1。
但是,我观察到sklearn谱聚类最近邻生成的亲和矩阵不只包含0和1。是因为最近邻居列表中可能存在联系吗?所以我将 1/n 分配给 n 个同样接近的相邻节点?
sklearn spectral clustering "nearest neighbor" 选项计算出的亲和矩阵中的值为 0、1/2 和 1。
值0和1很容易理解,但是1/2项是怎么产生的呢?
注意k近邻的概念对于两个节点是非对称的,因此,使用k近邻得到的亲和矩阵A是非对称的。但是谱聚类使用的相似度矩阵是对称的,因此谱聚类取A和A.T.
的平均值1/2 值来自 A 中的不对称元素。