我有一系列数字,例如[1, 20, 300, 45, 5, 60, 10, 270, 3]。有什么有效的算法可以根据邻近程度将这些数字分组在一起?在这种情况下,我期望像[1, 3, 5],[20, 45, 60]和[270,300]。
[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]吗?
[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会组合在一起吗?样本中的较大数字会改变较小数字的分组吗?
[1,2,3,5,7,8,9]
[1,2,3,5,7,8,9,1075,4000]
这个问题是整个机器学习领域提出的:聚类分析 也许这个相关问题会有所帮助?
我认为您想要的是K均值聚类(在相关问题中有帮助地链接到),但是您需要知道要将数据拆分成多少组才能使用它。