有效地将相似数字组合在一起

时间:2012-12-28 23:32:55

标签: algorithm math language-agnostic statistics cluster-analysis

  

可能重复:
  1D Number Array Clustering

我有一组像[1, 20, 300, 45, 5, 60, 10, 270, 3]这样的数字。什么是基于邻近度将这些数字分组在一起的有效算法?在这种情况下,我希望[1, 3, 5][20, 45, 60][270, 300]之类的内容。

2 个答案:

答案 0 :(得分:2)

这可能是大规模的矫枉过正,但您可能需要查看 hierarchical clustering algorithms 。这些算法将值组合在一个层次结构中,您可以从中轻松提取最佳k簇。集合聚类可能是这些方法中最容易实现的,而且从经验来看,它往往会产生非常好的聚类。

希望这有帮助!

答案 1 :(得分:2)

您要问的最难的部分是如何实际定义接近度。您期望输出来自[5,10,15,20]?它与[500,1000,1500,2000]的分组是否相同?

[1,2,3,5,7,8,9]怎么样?应该有一组还是三组? (或两个?) 那么[1,2,3,5,7,8,9,1075,4000]呢? 1075和4000组合在一起吗?较小数字的分组是否会因样本中较大的数字而改变?

这个问题是整个机器学习领域提出的问题:Cluster Analysis 也许这related question会有所帮助吗?

我认为您想要的是K-means clustering(在相关问题中有用地链接),但您需要知道要将数据拆分成多少组才能使用它。