-1

您将如何对顺序信息进行聚类?我有大约 500 个序列,其中一些具有相同的特征。对于分类顺序(时间)数据,是否有类似 K-means 的东西,或者您的方法会是什么样子?

这些序列是代表类的 one-hot-encoded 向量序列。例如,考虑四个班的护士排班问题:早班、白班、夜班、家。向量如下所示:[0, 1, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1],这位护士在白班工作 2 天,在家第三天。但是这个“时间表”可能取决于医院的参数,所以我想对类似的数据进行聚类。我有大约 500 个“时间表”。有任何想法吗?

4

1 回答 1

1

我将提到 3 个“级别”,您可以在这些“级别”上解决这个问题,假设您能够相应地构建您的问题陈述。请将此答案视为您可以用来获得有关如何解决此问题的指导,因为您提出的问题不是那么具体并且涵盖的范围很广(通常违反 SO 准则)。


传统方法涉及使用一些 DR(降维)方法,例如 PCA,然后使用聚类,例如 Kmeans、高斯混合、基于密度的方法等。

在此处输入图像描述

这些方法的问题在于,他们假设观察到的数据是通过简单的线性变换从低维潜在空间生成的。例如,当对数据使用 PCA 时,您假设您看到的数据来自 2 个主成分的线性组合。这适用于很多数据集,但更复杂的数据通常是低维潜在空间非线性变换的结果。


更现代的方法在某种程度上使用 DNN 作为预处理,然后使用聚类方法来处理这个问题。DNN 有助于解决非线性问题,并为序列和图像等数据类型提供更好的低维表示。这通常是大多数基准基准模型的基础 -

  1. 训练自动编码器以重新生成序列
  2. 取瓶颈嵌入/潜在向量,并使用聚类算法在这个潜在空间中进行聚类。

在此处输入图像描述

虽然这些方法效果很好,但它们也存在缺陷。由于在学习过程中没有明确包含聚类驱动的目标,因此学习的 DNN 不一定会输出适合聚类的低维数据


最新的研究涉及训练 DNN 和聚类损失,以确保潜在空间是聚类友好的。这些算法比上述任何方法都提供了更好的结果。此类别中的 SOTA 方法之一是DCN(深度集群网络)。DCN 将自动编码器的重建损失与聚类损失相结合。它定义了一个基于质心的目标概率分布(与 Kmeans 非常相似,但具有 student-t 分布),并将其与模型聚类结果的 KL 散度最小化。

在此处输入图像描述

在此处此处查找更多信息。


具体到您的情况:您有一个具有 4 个特征的序列向量。您可以构建基于 LSTM 的自动编码器来创建初始嵌入,然后使用聚类方法对潜在向量进行聚类。或者,如果您对 DCN 感兴趣,您可以使用自动编码器构建类似的设置,然后使用聚类损失和重建损失来进一步训练编码器以生成对聚类友好的嵌入。

于 2020-12-13T23:05:47.787 回答