Python 在Scikit'中使用预计算的亲和矩阵时的KNN;s谱聚类?

Python 在Scikit'中使用预计算的亲和矩阵时的KNN;s谱聚类?,python,machine-learning,scikit-learn,cluster-analysis,unsupervised-learning,Python,Machine Learning,Scikit Learn,Cluster Analysis,Unsupervised Learning,我计算了大量对象之间的相似性矩阵,每个对象可以与任何其他对象具有非零相似性。我为另一个任务生成了这个矩阵,现在想将它进行聚类,以便进行新的分析 这个方法似乎很适合,因为我可以传入一个预计算的亲和矩阵。我还知道,谱聚类在构建亲和矩阵时通常使用一些最近邻,而我的相似性矩阵没有相同的约束 如果我传入一个矩阵,该矩阵允许亲和矩阵中节点之间有任意数量的边,scikit会限制每个节点只有一定数量的最近邻吗?如果没有,我想我将不得不对预先计算的亲和矩阵进行更改。你不必自己计算亲和度来进行光谱聚类,sklear

我计算了大量对象之间的相似性矩阵,每个对象可以与任何其他对象具有非零相似性。我为另一个任务生成了这个矩阵,现在想将它进行聚类,以便进行新的分析

这个方法似乎很适合,因为我可以传入一个预计算的亲和矩阵。我还知道,谱聚类在构建亲和矩阵时通常使用一些最近邻,而我的相似性矩阵没有相同的约束


如果我传入一个矩阵,该矩阵允许亲和矩阵中节点之间有任意数量的边,scikit会限制每个节点只有一定数量的最近邻吗?如果没有,我想我将不得不对预先计算的亲和矩阵进行更改。

你不必自己计算亲和度来进行光谱聚类,sklearn会为你做这些

调用
sc=SpectralClustering()
时,
affinity
参数允许您选择用于计算affinity矩阵的内核<默认情况下,code>rbf似乎是内核,并且不使用特定数量的最近邻。然而,如果您决定选择另一个内核,您可能需要使用
n_
参数指定该数字


然后,您可以使用
sc.fit\u predict(您的\u矩阵)
来计算聚类。

您不必自己计算亲和力来进行光谱聚类,sklearn会为您做这些

调用
sc=SpectralClustering()
时,
affinity
参数允许您选择用于计算affinity矩阵的内核<默认情况下,code>rbf似乎是内核,并且不使用特定数量的最近邻。然而,如果您决定选择另一个内核,您可能需要使用
n_
参数指定该数字


然后,您可以使用
sc.fit\u predict(您的\u矩阵)
计算聚类。

光谱聚类不需要稀疏矩阵


但是如果我没有弄错的话,找到稀疏矩阵的最简单的非零特征向量比找到稠密矩阵的更快。最坏的情况可能仍然是O(n^3),尽管-谱聚类是你能找到的最慢的方法之一。

谱聚类不需要稀疏矩阵


但是如果我没有弄错的话,找到稀疏矩阵的最简单的非零特征向量比找到稠密矩阵的更快。最坏的情况可能仍然是O(n^3),尽管-光谱聚类是你能找到的最慢的方法之一。

但我已经有了一个符合scikit标准的相似性矩阵(相似性为正、对称、平方),并且一直在使用affinity='precomputed'选项。你是在建议我根据预先计算的亲和矩阵计算一个新的亲和矩阵吗?我想如果你愿意,你可以计算你自己的亲和矩阵,但使用你的相似矩阵就足够了(相似矩阵也是suqare、正和对称的)。如果你的输入数据是一个相似矩阵,让sklearn为你做这项工作,它会自己计算亲和矩阵:)啊,我明白了。我使用一个预计算的亲和矩阵,因为它是另一个资源密集型进程的输出。我只是想看看我是否能在前一个流程已经投入的工作基础上构建一些新的东西。交给我使用的亲和矩阵比用来创建它的输入要小得多。好吧,你说你有一个相似矩阵,这就是为什么!请注意,使用numpy/scipy从头开始实现光谱聚类的代码不到10行,而且效率也很高!也可以看看:但我已经有了一个符合scikit标准的相似性矩阵(相似性为正、对称、正方形),并且一直在使用affinity='precomputed'选项。你是在建议我根据预先计算的亲和矩阵计算一个新的亲和矩阵吗?我想如果你愿意,你可以计算你自己的亲和矩阵,但使用你的相似矩阵就足够了(相似矩阵也是suqare、正和对称的)。如果你的输入数据是一个相似矩阵,让sklearn为你做这项工作,它会自己计算亲和矩阵:)啊,我明白了。我使用一个预计算的亲和矩阵,因为它是另一个资源密集型进程的输出。我只是想看看我是否能在前一个流程已经投入的工作基础上构建一些新的东西。交给我使用的亲和矩阵比用来创建它的输入要小得多。好吧,你说你有一个相似矩阵,这就是为什么!请注意,使用numpy/scipy从头开始实现光谱聚类的代码不到10行,而且效率也很高!你也可以看看那里: