顺序聚类算法

机器算法验证 聚类
2022-04-17 17:27:09

我想对数组中的元素进行聚类。与普通聚类算法的关键区别在于元素的顺序很重要。例如,如果我们看一个像这样的简单数字序列:

1.1, 1.2, 1.0, 3.3, 3.3, 2.9, 1.0, 1.1, 3.0, 2.8, 3.2

很明显,那里有两个簇(1.1、1.2、1.0、1.0、1.1)和(3.3、3.3、2.9、3.0、2.8、3.2)。我想要的是找到相似元素的连续组

(1.1, 1.2, 1.0), (3.3, 3.3, 2.9), (1.0, 1.1), (3.0, 2.8, 3.2)

4 在这种情况下。当然,我可以运行一些普通聚类算法的变体,然后根据元素的索引拆分聚类,但可能有更简单的方法可以做到这一点。

有什么算法可以用来做这个吗?

1个回答

约束聚类维护数据顺序。R中有一个名为'rioja'的包,它在函数'chclust'中实现了这一点。

该过程并不太复杂:

  1. 计算点间距离
  2. 找到相邻点之间的最小距离
  3. 将两点的值取平均值生成单个值
  4. 再次吐出列表并从一个开始,直到你有一个点。

您需要维护某种树形结构,但具有一些基本的编程经验,您应该能够做到。