大型多维数据的无监督聚类

Posted

技术标签:

【中文标题】大型多维数据的无监督聚类【英文标题】:Unsupervised Clustering of large multi-dimentional data 【发布时间】:2021-10-21 03:15:53 【问题描述】:

您好,我是机器学习新手。我需要一些关于高维数据无监督聚类的帮助。我有超过 15 个维度的数据,大约 50 - 8 万行。数据看起来像这样(15 个参与者,每个参与者的行数几乎相等,有 15 个特征)-

Participant time feature 1 feature 2...
1 0.05 val val
1 0.10 val val
2 0.05 val val
2 0.10 val val
2 0.15 val val

数据由许多参与者组成,每个参与者都有多行数据,并且它们都带有其特征的时间戳。我的目标是根据参与者对这些数据进行聚类,并根据这些聚类进行推断。这里的问题是每个参与者都有很多行,我不能用一个点来代表每个参与者,所以对它们进行聚类似乎是一项艰巨的任务。

我需要帮助:

    对这些数据进行聚类以便我可以根据参与者做出推断的最佳方法是什么?

    我应该使用哪种聚类技术?我已经尝试过 sklearn 的 Kmeans、meanshift 和其他库,但它们花费的时间太长,导致我的系统崩溃。

对不起,如果有点难以理解,我会尽力回答您的问题。预先感谢您的帮助。如果这个问题与其他问题非常相似,请告诉我(我找不到)。

谢谢你:)

【问题讨论】:

这篇文章似乎更适合交叉验证:stats.stackexchange.com 谢谢,我也会在那边分享。 【参考方案1】:

由于您在必要的计算量方面遇到问题,因此您必须在此处做出某种妥协。这里有一些建议可能会解决您的问题,但它们都是有代价的。

    降维,即 PCA 将列数减少到 ~2 左右。您将丢失一些信息,但您将能够绘制它并通过 K-means 进行推理。

    平均患者数据。不确定这是否足够,这取决于您的数据。这将失去对患者的超时观察,但可能会大大减少您的行数。

我的建议是进行降维,因为随着时间的推移丢失患者的数据可能会使您的数据变得无用。除了 PCA 之外,还有其他东西,例如自动编码器。为了按照您的描述方式进行聚类,我建议您坚持使用 K-means 或软 K-means。

【讨论】:

感谢您的回答,这似乎是第一种方法。我将按照建议继续并尽快发布更新。 很高兴有帮助。我还认为您可能希望通过将相应的行连接到一个矩阵来对每个患者的数据进行分组,然后使用自动编码器来减少维度。这绝对可以产生比 PCA 更好的结果。如果您选择使用 PCA,您可能需要考虑要保留的方差百分比。 This thread 解释了如何使用 sklearn 来确定要保留的方差的特征数量。

以上是关于大型多维数据的无监督聚类的主要内容,如果未能解决你的问题,请参考以下文章

短语的无监督语义聚类

11.理解分类与监督学习聚类与无监督学习。

11.理解分类与监督学习聚类与无监督学习。

聚类算法(上):8个常见的无监督聚类方法介绍和比较

有没有不分配 k 的无监督学习算法

机器学习-聚类Clustering