我正在学习非线性聚类算法,我遇到了这个二维图。我想知道哪种聚类算法和超参数组合可以很好地聚类这些数据。
就像人类会聚集这 5 个尖峰一样。我希望我的算法能够做到这一点。我尝试了 KMeans,但它只是水平或垂直聚类。我开始使用 GMM,但无法获得适合所需聚类的超参数。
我正在学习非线性聚类算法,我遇到了这个二维图。我想知道哪种聚类算法和超参数组合可以很好地聚类这些数据。
就像人类会聚集这 5 个尖峰一样。我希望我的算法能够做到这一点。我尝试了 KMeans,但它只是水平或垂直聚类。我开始使用 GMM,但无法获得适合所需聚类的超参数。
如果它不起作用,请始终尝试先改进预处理。k-means 等算法对缩放非常敏感,因此需要谨慎选择。
GMM 显然是您的首选。可能值得尝试不同的工具。R 的 Mclust 非常慢。Sklearn 的 GMM 有时不稳定。ELKI 有点难上手,但它的 EM 通常给了我最好的结果。
除了 GMM,可能值得尝试相关聚类。这些算法假设存在某个簇存在的流形(例如,一条线)。示例包括 ORCLUS、LMCLUS、CASH、4C……但在我看来,这些主要适用于合成玩具数据。
我会建议尝试分层聚类。在凝聚方法中,您将为每个点分配单独的集群,然后根据彼此之间的距离组合集群。
DBSCAN
或者GMM
应该很好地对此类数据进行聚类。
它是少数不将数据分类为的聚类算法之一circular clusters
使用 DBSCAN 进行聚类
使用 GMM 进行聚类
也请务必阅读此博客。它将解释不同的聚类技术。