R中混合数据的鲁棒聚类方法

机器算法验证 聚类 基于模型的聚类 混合类型数据
2022-03-05 21:59:31

我正在寻找对一个小型数据集(4 个区间变量和一个三因素分类变量的 64 个观察值)进行聚类。现在,我对聚类分析很陌生,但我知道自从层次聚类或 k-means 是唯一可用的选项以来,已经取得了相当大的进步。特别是,似乎可以使用基于模型的聚类的新方法,正如chl 所指出的那样,可以使用“拟合优度指数来决定聚类或类的数量”。

但是,基于模型的聚类的标准 R 包mclust显然不适合具有混合数据类型的模型。fpc模型可以,但无法拟合模型,我怀疑是因为连续变量的非高斯性质。我应该继续使用基于模型的方法吗?如果可能,我想继续使用 R。在我看来,我有几个选择:

  1. 将三级分类变量转换为两个虚拟变量并使用mclust. 我不确定这是否会影响结果,但如果不是,这是我的首选。
  2. 以某种方式转换连续变量并使用fpc包。
  3. 使用我还没有遇到的其他 R 包。
  4. 使用 Gower 的度量创建一个相异矩阵,并使用传统的分层或重定位集群技术。

stats.se hivemind 在这里有什么建议吗?

1个回答

我建议您将Gower与后续的层次聚类一起使用。在对象数量较少(例如 64 个)的情况下,分层聚类仍然是最灵活和最合适的方法。如果您的分类变量是名义变量,Gower 将在内部将其重新编码为虚拟变量并基于它们的骰子相似性(作为 Gower 的一部分)。如果您的变量是序数,您应该知道 Gower 系数的最新版本也可以容纳它。

至于确定“最佳”聚类数量的众多指标,它们中的大多数都独立于这个或那个聚类算法而存在。您无需寻找必须包含此类索引的集群包,因为后者可能作为单独的包存在。您在一个集群包之后留下一系列集群解决方案,然后通过另一个包中的索引来比较这些解决方案。