多变量聚类

数据挖掘 Python r 聚类 k-均值
2021-09-22 00:28:48

共有 50 名学生(john, Roy..),并使用了一些动作来完成一项工作。我的数据集是这样的

    John    Roy    Micheal   Ron  ....... Smith
     A       B        B       A            C
     A       A        C       B            B
     C       A        A       B            B
     .       .        .       .            .
     .       .        .       .            .
     .       .        .       .            .
     F       G        E       A            G

这里 A,B,C...G 是字符串。最终数据是这样的...

         A   B   C   D   E   F   G
 John    3  34  23  34   4   3   1
 Roy     5  23  12  3    5   39  46
 ...................................

这意味着约翰使用了 3 次“A”,而罗伊使用了 5 次“A”。因此,根据他们的行为,我想对它们进行聚类(即使用相同数量的活动的学生将在同一个组中)。

可以使用哪种聚类方法以及如何使用?

1个回答

K-均值

您的数据有7尺寸,所以 k-means 值得一试。查看数据的PCA并检查是否有任何集群可见,因为如果集群不是高斯的,K-means 将很难。设置是:

  • 每个人都是一个点7D空间(一个50×7矩阵)
  • 应用 PCA 并检查它。
  • 如果不同的集群可见,那么你会得到一个结果

模糊 C 均值

我建议使用软聚类算法。软聚类意味着输出不是二元的(每个样本只属于一个集群,不属于其他集群),而是为每个样本的归属分配一个隶属度分数给每个集群。它最小化与 K-means 相同的目标函数,但权重在每次迭代中计算,可以在此处找到。库通常以FCM的名称使用此算法。

K-means 通过 GMM

K-means 的另一个软版本称为高斯混合模型,在该模型中,您尝试估计叠加描述数据的高斯核(正如您再次看到的,数据的高斯分布在这里至关重要)。设置是:

  • 选择一个 k 作为初始簇数并产生 k 任意高斯核(即任意 μσ)
  • 使用期望最大化算法在每一步更新新的聚类结构。

光谱聚类

以任何方式从数据中定义相似矩阵。例如计算点之间的距离7D空间并扭转它。或者应用RBF 内核来确定它们之间的相似性。然后根据排序后的特征值计算第二个特征值-特征向量对。使用 K-means 对特征向量的那些元素进行聚类。

如果您有更详细的问题,请在此处发表评论。祝你好运!