聚类二进制分类数据

机器算法验证 聚类 分类数据 主成分分析 对应分析
2022-03-30 22:06:56

我有一些数据,其中有某些类(c1、c2、c3、c4 ...),并且数据由二进制向量组成,其中 1 和 0 表示条目是否属于某个类。类的数量将 > 200。数据将如下所示:

c1    c2    c3    c4    ...
 1     0     0     0    ...
 0     1     1     0

这些数据会属于“分类”类型吗?

细节:

  • 样本量: ~20000

  • 班级人数:300

  • 数据矩阵稀疏性:99.52%

  • 问题陈述:我所说的课程是医院提供的医疗服务。如果医院提供服务,我们只需将 1 或 0 放入二进制向量中。我想根据他们的服务对类似的医院进行聚类。

我在这个数据集上尝试了 PCA 进行降维,我什至用 DBSCAN 得到了很好的集群,但我读到,对于分类稀疏数据,PCA 不推荐,欧几里得距离也因为距离测量不好。

我计划使用 MCA(多重对应分析),但我无法弄清楚我应该如何表示数据。

4个回答

一种简单的方法是使用 EM 拟合“朴素贝叶斯”模型的混合。混合模型的结构是在这里,索引数据点,每个数据点都是二进制特征的向量。是数据点所属的簇的索引。是集群生成的点的(学习)概率。是为属于的值的(学习的)概率P(xi1,,xin)=kP(yi=k)jP(xij|yi=k)inyiiP(yi=k)kP(xij|yi=k)jk

该模型将每个集群中的二进制值视为独立的,取决于它们在集群中的成员资格。这是拟合(对角线)高斯混合模型的离散模拟。我和我以前的学生 Tony Fountain 将这种模型应用于硅晶片上的芯片故障集群模式

该模型是各种被称为潜在类分析潜在特征分析的实例。John Uebersax 在这个网站上可以找到对这些技术的一个很好的概述,他在其中讨论了各种潜在类别模型,包括 Probit Discrete Latent Trait 模型。Probit 模型使用潜在多元高斯分布对每个集群进行建模,这可以捕获集群内二元响应之间的成对相关性。我相信Uebersax提供了一个软件包,但我没有尝试过。

相似之处是什么?

首先尝试找出对您的用例有意义的相似性函数这在很大程度上取决于用例,因此没有一种万能的解决方案。

一旦您有了相似性的工作概念,请尝试使用这种相似性进行层次聚类或 DBSCAN。请注意,具有工作相似性是这些算法产生良好结果的必要条件。

跳出向量的框框思考,思考你的数据世界

在数学上,你有一个向量空间。但这不是您的数据的含义PCA 将使这个向量空间的方差最大化,但这意味着什么?

相反,选择对您的数据有意义的方法。例如,频繁项集和关联规则可能对您的数据意味着更多。你的数据可能不是随机数,但它有一些现实,一些语义。您需要将这种与现实的联系纳入您的分析。

亲和传播聚类可能是您尝试的有趣方法。但更重要的是选择符合您要求的二进制指标。如果您有适当的相似性度量,那么在 2D 或 3D 空间中使用 MDS 方法(或非线性降维)可视化数据也会很有帮助。

我使用余弦距离的层次聚类来解决类似的问题,并且效果很好。如果它们没有共同的服务,则距离将为 1。如果它们具有完全相同的服务,则距离将为 0。