我正在尝试智能地对已排序的集合进行分类。我有条数据的集合。但我知道,这个数据拟合到不平等的大小分档。我不知道如何智能地选择端点以正确适合数据。例如:
假设我的收藏夹中有12件商品,并且我知道数据可以放入3个容器中:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
如何智能地为的bin选择断点?
我目前的实现方式是将数据分成大小均匀的容器,然后取端点的平均值,以找到容器末端的索引。所以它是这样的:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
first break evenly: i = 1-4, 5-8, 9-12
mean endpoints: between 4 and 5: (3+3)/2 = 3
between 8 and 9: (3+3)/2 = 3
因此,现在低于3的任何东西都适合于垃圾箱1,高于3但高于3的任何东西都适合于垃圾箱2,高于3的任何东西都适合于垃圾箱3。您可以看到我的问题所在。如果数据具有不相等的bin,则我的方法将失败。
一位朋友提到了k近邻算法,但我不确定。
1
您能解释一下“智能”的意思吗?您想通过装箱完成什么?为什么首先要进行分箱?
—
ub
对于倒数第二段,您是指,和吗?否则,这对我来说毫无意义。
—
gung-恢复莫妮卡
我的意思是聪明地(不是像我那样天真地假设垃圾箱间隔均匀)。如果一条数据落在特定的bin中,这告诉我有关该条数据的一些非常重要的信息。我对数据进行排序以确定bin中断索引,然后确定每条数据分别属于哪个bin。
—
马修·肯奈兹
除非我在求平均值时做错了什么,否则我认为我做对了。通过选择偶数; y间隔的垃圾箱,我所有的端点都是3。因此,我无法正确地对我的数据进行装箱。这就是为什么我的实现在没有均匀间隔的垃圾箱的情况下崩溃的原因。
—
马修·肯奈茨