Jon*_*han 9 cluster-analysis subset k-means
我试图实现Canopy聚类算法和K-Means.我在网上做了一些搜索,说要使用Canopy聚类来获得你的初始起点以进入K-means,问题是,在Canopy聚类中,你需要为冠层指定2个阈值:T1和T2,其中内阈值中的点与该冠层强烈相关,而较宽阈值中的点与该冠层的关系较小.这些阈值或距冠层中心的距离是如何确定的?
问题背景:
我试图解决的问题是,我有一组数字,如[1,30]或[1,250],设置大小约为50.可能有重复的元素,它们也可以是浮点数,例如as 8,17.5,17.5,23,66,...我想找到最佳聚类或数字集的子集.
因此,如果使用K-means进行Canopy聚类是一个不错的选择,那么我的问题仍然存在:您如何找到T1,T2值?如果这不是一个好的选择,是否有更好,更简单但有效的算法?
小智 2
也许天真地,我从某种频谱估计的角度看待这个问题。假设我有 10 个向量。我可以计算所有对之间的距离。在这种情况下,我会得到 45 个这样的距离。将它们绘制为不同距离范围内的直方图。例如,10 个距离在 0.1 到 0.2 之间,5 个距离在 0.2 到 0.3 之间,等等,您就可以了解向量之间的距离是如何分布的。根据此信息,您可以选择 T1 和 T2(例如,选择它们以便覆盖人口最多的距离范围)。
当然,这对于大型数据集来说是不切实际的 - 但您可以只采取随机样本或其他样本,以便您至少知道 T1 和 T2 的大概情况。使用 Hadoop 之类的工具,您可以对大量点进行某种事先的谱估计。如果您尝试聚类的所有传入数据都以大致相同的方式分布,那么您只需获取 T1 和 T2 一次,然后将它们修复为所有未来运行的常量。