简而言之:我正在使用具有相关距离的k-means聚类。如何检查应该使用多少个集群,如果有?
关于数据分组时如何建立多个聚类有很多索引和答案: example 1 , example 2等等。目前,我正在使用 Dunn's index ,但由于下述原因之一,这还不够。
所有这些方法至少表现出以下问题之一,我必须避免:
索引:
- 聚类质量指数推导对数据协方差矩阵做出了一些假设,即,从那时起,仅适用欧几里德或类欧几里德度量 - 相关性不再是一种选择
- 它需要至少两个非空簇来比较已经计算的分区 - 不可能说明是否有任何理由进行分组
聚类方法:
- 估计簇本身数量的聚类方法(例如亲和性传播)速度慢得多,并且扩展性不佳
总结一下:是否有任何标准或索引,可以检查数据中的组是否存在(也许可以估计组的数量),而不限制所使用的指标?
编辑:我正在操作的空间具有多达数千个功能。
最佳答案
我有一个方法,但它是我自己的发明,而且是实验性的。虽然理论上它适用于多维,但我只在 2D 方面取得了成功(如果对多维数据进行聚类,则采用前两个主成分)。
我称之为引力聚类。您传入一个涂抹,然后使用 1/(d + smear)^2 在每个点周围产生吸引力(涂抹可防止值趋向无穷大,并控制聚类的粒度)。指出他们向上移动到能量场的局部最大值。如果它们都移动到同一点,则没有聚类,如果它们移动到不同点,则有聚类,如果它们都保持在各自的局部最大值,则同样没有聚类。
关于validation - 有没有什么算法可以检查数据中是否存在簇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154923/