validation - 是否有任何算法可以检查数据中是否存在簇?

简而言之:我正在使用具有相关距离的k均值聚类。如何检查应使用多少个群集(如果有)?

关于在对数据进行分组时如何建立多个群集的索引和答案很多:
example 1example 2等。目前,我正在使用Dunn's index,但是由于以下原因之一,它还不够用。

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

索引:


聚类质量指数推导对数据协方差矩阵做出了一些假设,即由于这种时刻仅适用于欧几里得或类似欧几里得的度量标准-相关性不再是一种选择
它需要至少两个非空群集来比较已经计算出的分区-不可能陈述是否有任何理由将分区划分为组


聚类方法:


估计聚类本身数量(例如亲和力传播)的聚类方法要慢得多并且扩展性不好


综上所述:是否有任何标准或索引可以检查数据中是否存在组(可能是估计组的数量),而不限制所使用的度量?

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

最佳答案

我有一种方法,但这是我自己的发明,而是实验性的。从理论上讲,它可以在多维上运行,但我在2D方面仅取得了任何成功(如果对多维数据进行聚类,则采用前两个主要成分)。

我称它为重力聚类。传递拖尾,然后使用1 /(d +拖尾)^ 2在每个点周围产生吸引力(拖尾可防止值变为无穷大,并控制聚类的粒度)。点他们爬上他们在能量场上的当地最大值。如果它们都移动到同一点,那么您将没有聚类;如果它们都移动到不同的点,那么您将具有聚类;如果它们都保持在各自的局部最大值处,那么您也将没有集群。

本文翻译自 https://stackoverflow.com/questions/44154923/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

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


相关文章:

machine-learning - Scikit的光谱聚类功能可以处理多少矩阵大小?

matlab - Logistic回归-计算成本函数会返回错误的结果

python - 使用带有sklearn kmeans的任意度量的文本聚类

python - 如何在DBSCAN中将包含分类数据和连续数据的数据集获取到用户定义的度量函数中?

c# - C#XML模式验证

visual-studio-2010 - 元素“ tr”不能嵌套在元素“ tr”内

html - 重新启用字段后用欧芹验证

javascript - JavaScript电话号码验证

r - K-均值算法,R

machine-learning - 使用scikit选择分层聚集集群中的集群数量