如何从sklearn谱聚类中得到特征值和特征向量?

2024-06-16 10:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试sklearn的光谱聚类,为了设置最佳的聚类数,我想使用本文提出的方法“自校正光谱聚类”(发表在NIPS上)。这种方法需要特征值和特征向量,我意识到sklearn谱聚类并没有提供它。在

有没有办法从sklearn谱聚类中得到特征值和特征向量?在

这是纸龙头

@article{zelnik2005self,
  title={Self-tuning spectral clustering},
  author={Zelnik-Manor, Lihi and Perona, Pietro},
  year={2005},
  publisher={MIT Press}
}

Tags: 方法selftitlearticle光谱聚类sklearn校正
2条回答

如果查看以下源文件:

https://github.com/scikit-learn/scikit-learn/blob/f0ab589f/sklearn/cluster/spectral.py#L259

那么

https://github.com/scikit-learn/scikit-learn/blob/f0ab589f/sklearn/manifold/spectral_embedding_.py#L308

最终可以看到计算特征值/向量的一种方法是

lambdas, diffusion_map = eigh(laplacian)

这里,eigh引用源文件顶部提到的^{}。在

就像@anony mousse说的,你可以在源代码中找到它。在

sklearn\cluster\spectral.py中的sklean源代码中有一行:

maps = spectral_embedding(affinity...

maps包含特征向量。默认情况下,spectral_embedding只输出特征向量,但您可以修改它以输出特征值(通常命名为lambdas)。你也可以简单地用你选择的特征解算器从亲和矩阵中计算它们。在

相关问题 更多 >