给定一组数字,有没有算法或方法可以将它们分成不同的组并进行计数?你知道吗
比如:
input : [1,2,3,4,5,100,200,1000,2500,3000]
output : 1-5 : 5
100 -200 : 2
1000 - 3000 : 3
input : [1,1,2,3,4,5,6,7,8,9,10,11,15,75,80]
output : 1 - 15 : 13
75 - 80 : 2
input : [1,100,1000]
output : 1 : 1
100 : 1
1000 : 1
比如说组的数量应该是最少2到最多10个。 如何做到这一点?你知道吗
这就是机器学习有帮助的问题。 对于这个问题,这里有一个简单而好的解决方案:Clustering values by their proximity in python (machine learning?)。 它使用的是numpy和sklearn,需要先安装。你知道吗
你需要某种集群化。由于2..10个组(簇)的数量有限,k-means看起来是个不错的选择。你知道吗
而且您肯定需要一些依赖于数字值的度量(因为简单的差异不适合将1、2、3和100200划分为不同的集群)。可能是,数值对数?你知道吗
你问的任务有点模棱两可,因为分组的标准没有很好的定义。你知道吗
鉴于集合中至少有两个不同的数字,我建议采用以下方法:
当然,你通过这种方式得到的群体或多或少是武断的。如果要避免这样分组:
input : [1,1,2,3,4,5,6,7,8,9,10,11,15,75,80] output : 1 - 8 : 9 9 - 15 : 4 75 - 80 : 2
那么你应该:相关问题 更多 >
编程相关推荐