validation - 有没有什么算法可以检查数据中是否存在簇?

标签 validation machine-learning cluster-analysis k-means correlation

简而言之:我正在使用具有相关距离k-means聚类。如何检查应该使用多少个集群,如果有

关于数据分组时如何建立多个聚类有很多索引和答案: example 1 , example 2等等。目前,我正在使用 Dunn's index ,但由于下述原因之一,这还不够。

所有这些方法至少表现出以下问题之一,我必须避免:

索引:

  • 聚类质量指数推导对数据协方差矩阵做出了一些假设,即,从那时起,仅适用欧几里德或类欧几里德度量 - 相关性不再是一种选择
  • 它需要至少两个非空簇来比较已经计算的分区 - 不可能说明是否有任何理由进行分组

聚类方法:

  • 估计簇本身数量的聚类方法(例如亲和性传播)速度慢得多,并且扩展性不佳

总结一下:是否有任何标准或索引,可以检查数据中的组是否存在(也许可以估计组的数量),而不限制所使用的指标?

编辑:我正在操作的空间具有多达数千个功能。

最佳答案

我有一个方法,但它是我自己的发明,而且是实验性的。虽然理论上它适用于多维,但我只在 2D 方面取得了成功(如果对多维数据进行聚类,则采用前两个主成分)。

我称之为引力聚类。您传入一个涂抹,然后使用 1/(d + smear)^2 在每个点周围产生吸引力(涂抹可防止值趋向无穷大,并控制聚类的粒度)。指出他们向上移动到能量场的局部最大值。如果它们都移动到同一点,则没有聚类,如果它们移动到不同点,则有聚类,如果它们都保持在各自的局部最大值,则同样没有聚类。

关于validation - 有没有什么算法可以检查数据中是否存在簇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154923/

相关文章:

cluster-analysis - 在 ELKI 中运行 DBSCAN

java - 如何验证表单页面中的整数输入?

javascript - Javascript 中的 .innerHTML

ruby-on-rails - "Password can' t be blank"播种数据库时出错

machine-learning - 贝叶斯集和寻找顶级集

machine-learning - 对与另一个较小数据集类似的数据集中的实例进行分类的算法,其中这个较小的数据集代表单个类

javascript - 使用 javascript 创建输入表单

java - Baum-Welch 实现示例

python - 使用 LinearSVC 进行特征选择

java - K-means 聚类算法运行时间和复杂度