我什么时候应该使用 k-means 而不是 Spectral Clustering?

机器算法验证 机器学习 聚类 数据挖掘 k-均值 光谱分析
2022-03-26 21:33:01

从下面链接的图像中,看起来当数据实际上由 K 个各向同性簇组成时,光谱聚类和 K-means 一样好。但对于其他非凸聚类,光谱聚类优于 k-means。这是真的?我什么时候应该使用 K-Means 聚类而不是光谱聚类?

此外,要查找第 1 行和第 2 行中显示的形式的集群,我需要将什么相似度函数与 SpectralClustering 结合使用?

Scikit learn的聚类方法比较

1个回答

k-means 要快得多。

K-means 在性能方面很难超越,因此它适用于更大的数据集。这可能是关键因素。

K-means 是O(n.k.d.i),即线性。

对于大型数据集,任何O(n2)或更糟的是令人望而却步。

光谱聚类在O(n3).

这意味着它不适用于任何相当大的数据集。第二张图像在强大的 CPU 上已经花费了 7 秒 - 不要在更大的数据上尝试这个,你不会高兴的。

PS该图像已过时。当前版本可以在sklearn 文档中找到(不是嵌入,因为我不知道图像是否可以 CC-BY-SA-3.0 许可......您的图像上传可能侵犯版权,虽然我怀疑你'会惹上麻烦的……)

注意运行时信息。k-means 和 DBSCAN 在这些小玩具数据集上的每一个都花费 <0.02s,而谱聚类要23-734 倍。只有亲和力传播同样糟糕。