【发布时间】:2011-02-25 17:42:21
【问题描述】:
任何人都可以建议一些可以使用距离矩阵作为输入的聚类算法吗?还是基于距离矩阵也能评估聚类“好坏”的算法?
此时我正在使用 Kruskal 算法的修改 (http://en.wikipedia.org/wiki/Kruskal%27s_algorithm) 将数据拆分为两个集群。它有一个问题。当数据没有不同的集群时,算法仍然会创建两个集群,一个集群包含一个元素,另一个包含所有其余元素。在这种情况下,我宁愿有一个包含所有元素的集群,而另一个是空的。
是否有任何算法能够进行这种类型的聚类?
是否有任何算法可以估计聚类的效果,甚至更好地估计数据中有多少聚类?
算法应该只使用距离(相似度)矩阵作为输入。
【问题讨论】:
-
K-最近邻(en.wikipedia.org/wiki/KNN)是一种简单有效的聚类算法。稍作调整,它应该可以满足您的需求。
-
K 最近邻 - 起源于分类算法(我不知道如何在聚类中使用它)。最著名的方法之一是 K-means 聚类。 (en.wikipedia.org/wiki/K-means_clustering)
-
据我所知,在原始形式中,我需要此算法的坐标,而我没有。如何调整它以使其适用于距离矩阵?
-
据我了解,k-means 聚类是一种聚类分析算法,而不是聚类算法本身。 K-means 是一种分析集群优劣的好方法。由于 k-means 聚类问题是 NP-hard 问题,您需要使用其他算法来逼近理想的 k-means 聚类。 Lloyd 算法 (en.wikipedia.org/wiki/Lloyd's_algorithm) 不适用于距离矩阵,因为它需要计算簇质心(它也仅适用于在数据中查找预定义数量的簇)。
标签: algorithm math cluster-analysis