有什么方法可以确定在特定数据集上使用哪种聚类算法?

数据挖掘 机器学习 Python 聚类 无监督学习
2022-03-04 19:21:45

我很难让 kmeans 有效地对数据进行聚类。即使对于具有 5 个类别的简单属性,它也无法很好地分割数据。我知道 DBSCAN、层次聚类和 GMM。但是,在我开始为这些算法中的每一个编写代码之前,我只是想知道是否有任何方法(视觉或其他方式)来缩小可能适用于相关数据集的聚类算法。

提前致谢。

1个回答

不。

聚类是一种探索性技术,它是主观的,什么是好的,最好的聚类是那些“可解释但出乎意料”的聚类,这是你无法用统计数据量化的属性。所以这是一个反复试验的任务

此外,数据准备比聚类算法的选择重要得多在准备不充分的数据上,没有一个会起作用。

最后但同样重要的是,分类数据是一个巨大的问题对于大多数聚类方法,它缺乏细节 - 将其视为二进制变量过于粗糙,并且往往会产生糟糕的解决方案(例如微小的“集群”和单个变量上的微不足道的分裂)。这可能是数据的问题,而不是算法的问题。整数属性或仅具有很少离散级别的任何其他属性(包括 Likert-like-scale 问卷)也可以看到类似的问题。分类数据存在诸如 k 模式之类的方法,但通常也不会产生更好的结果......