我有一个分类数据数据集,我需要在不知道 k 的情况下对其进行聚类。我知道聚类数据的算法,但不知道质心的数量,比如 G-mean,但没有一个适用于分类数据。我认为 DBSCAN 也因为密度而不好。我的数据集通常是一个营销数据集,每一行是一个客户,每一列对应一个属性,比如眼睛的颜色。所以,我需要在任何算法之前对这个数据集进行二值化。有任何想法吗??
如何在不知道聚类数量的情况下对二值化分类数据进行聚类?
数据挖掘
聚类
2022-02-21 19:07:26
1个回答
对于分类数据,稳健的层次聚类算法(ROCK)在合并集群时使用链接而不是距离会更好地工作,从而提高分类数据集群的质量。布尔和分类是最适合该算法的两种类型的属性。
ROCK 是一个静态模型,它结合了最近邻、重定位和分层凝聚方法。在该算法中,聚类相似性基于来自不同聚类的具有共同邻居的点的数量。
您可以使用 R 中的 CBA 包来执行 ROCK 聚类。
算法步骤:
数据----->绘制随机样本----->带有链接的集群----->在磁盘中标记数据
- 从数据库中抽取随机样本
- 将采用链接的层次聚类算法应用于样本
- 这意味着: 迭代合并集群 Ci、Cj 以最大化优度函数 merge(point1,point2) = 交叉链接总数/预期交叉链接数量 一旦集群之间没有更多链接或达到所需的集群数量,则停止合并。
- 仅涉及采样点的集群用于将磁盘上的剩余数据点分配给适当的集群
希望能帮助到你!!
有关示例的更多详细信息,请参阅以下链接: https://www.cis.upenn.edu/~sudipto/mypapers/categorical.pdf https://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Clustering/RockCluster
其它你可能感兴趣的问题