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