有效地将类似的数字分组在一起



可能的重复:
1D数阵列群集

我有一个像 [1, 20, 300, 45, 5, 60, 10, 270, 3]这样的数字。根据接近度将这些数字分组在一起的有效算法是什么?在这种情况下,我期望像[1, 3, 5][20, 45, 60][270, 300]

您问的最难的部分是如何实际定义接近度。您期望来自[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是否分组在一起?较小数字的分组是否因样本中的较大数字而改变?

这个问题是整个机器学习领域问的:集群分析也许这个相关的问题会有所帮助?

我认为您想要的是K-Means群集(在相关问题中有助于链接到),但是您需要知道要将数据分配给有多少组以使用它。

这可能是巨大的过度杀伤,但是您可能需要研究层次结构聚类算法。这些算法将值组合到层次结构中,您可以轻松地从中提取最佳的K簇。聚集聚类可能是这些实施方法中最容易的一种,并且从经验中倾向于产生非常好的群集。

希望这会有所帮助!

最新更新