1D数值列聚类[重复](1D Number Array Clustering [duplicate]

2019-06-17 11:15发布

可能重复:
集群一维数据优化?

所以我们可以说我有一个这样的数组:

[1,1,2,3,10,11,13,67,71]

有没有到阵列划分为这样的一个方便的方法?

[[1,1,2,3],[10,11,13],[67,71]]

我通过类似的问题显得但大多数人使用K-均值聚类点,如建议SciPy的 ,这是相当混乱,使用像我这样的初学者。 此外,我认为K-手段更适合二维以上的集群吧? 是否有分区取决于整数N的数字阵列许多分区/集群的任何方式?

有些人还建议刚性范围分区,但它并不总是呈现结果如预期

Answer 1:

不要使用多维集群算法一维问题。 单个维度是特别多,比你天真地认为,因为实际上你可以对它进行排序 ,这让事情变得更容易。

事实上,它通常不是甚至被称为集群,但如分段或自然断裂优化。

你可能想看看詹克斯自然中断的优化和类似的统计方法。 核密度估计也看,具有强大的统计背景的好方法。 密度局部极小的是将数据分割成群集的好地方,有统计的理由这样做。 KDE是也许对聚类1维数据的最声音的方法。

随着KDE,它再次成为明显的是一维的数据更表现良好。 在1D,你有局部极小; 但在2D你可能有鞍点,这种“可能”分裂分。 看到这一个鞍点的维基百科说明 ,如何这样的点可以或可能不适合用于分割的簇。



Answer 2:

你可能会寻找离散化算法。 1D离散问题类似于你问了很多。 他们决定切断点,根据频,分箱策略等。

WEKA在其,离散化过程中使用下面的算法。

weka.filters.supervised.attribute.Discretize

无论是使用法耶兹及伊拉尼的MDL方法或Kononeko的MDL准则

weka.filters.unsupervised.attribute.Discretize

使用简单的分级



文章来源: 1D Number Array Clustering [duplicate]