我正在尝试sklearn中的谱聚类,为了设置最优聚类数,我想使用本文“自调整谱聚类”(发表在NIPS上)中建议的方法。这种方法需要特征值和特征向量,而我意识到sklearn谱聚类不提供它。
有没有办法从sklearn谱聚类中获得特征值和特征向量?
这是纸质的bibtex
@article{zelnik2005self,
title={Self-tuning spectral clustering},
author={Zelnik-Manor, Lihi and Perona, Pietro},
year={2005},
publisher={MIT Press}
}发布于 2018-08-30 03:39:47
如果您查看以下源文件:
https://github.com/scikit-learn/scikit-learn/blob/f0ab589f/sklearn/cluster/spectral.py#L259
然后
您最终可以看到,计算特征值/向量的一种方法是
lambdas, diffusion_map = eigh(laplacian)在这里,eigh指的是在源文件顶部提到的scipy.linalg.eigh。
发布于 2017-05-11 01:06:32
就像@anony-mousse所说的,你可以在源代码中找到它。
在sklearn\cluster\spectral.py中的sklean源代码中有这样一行代码:
maps = spectral_embedding(affinity...maps包含特征向量。默认情况下,spectral_embedding仅输出特征向量,但您可以修改它以输出特征值(通常名为lambdas)。您也可以使用您选择的特征解析器从亲和度矩阵中简单地计算它们。
https://stackoverflow.com/questions/41157341
复制相似问题