algorithm - 使用带有 L 方法的平滑器来确定 K-Means 聚类的数量

标签 algorithm cluster-analysis k-means linear-regression

在应用 L 方法确定数据集中的 k 均值聚类数之前,是否有人尝试对评估指标应用平滑器?如果是这样,它是否改善了结果?或者允许较少数量的 k-means 试验,从而大大提高速度?您使用了哪种平滑算法/方法?

“L-方法”详见: Determining the Number of Clusters/Segments in Hierarchical Clustering/Segmentation Algorithms, Salvador & Chan

这会计算一系列不同试验集群计数的评估指标。然后,为了找到膝盖(出现在最佳簇数时),使用线性回归拟合两条线。应用一个简单的迭代过程来改善膝盖贴合度 - 这使用现有的评估指标计算并且不需要重新运行 k-means。

对于评估指标,我使用的是 Dunns 指数简化版的倒数。简化了速度(基本上简化了我的直径和簇间计算)。倒数是为了使索引在正确的方向上工作(即,通常越低越好)。

K-means 是一种随机算法,因此通常会运行多次并选择最合适的算法。这工作得很好,但是当您对 1..N 集群执行此操作时,时间很快就会增加。因此,控制运行次数符合我的利益。总体处理时间可能决定我的实现是否实用 - 如果我不能加快速度,我可能会放弃此功能。

最佳答案

我问了一个similar question过去在这里。我的问题是想出一种一致的方法来找到您描述的 L 形膝盖。所讨论的曲线代表模型的复杂性和拟合度量之间的权衡。

best solution就是根据下图找到最大距离d的点:

alt text

注意:我还没有阅读您链接到的论文..

关于algorithm - 使用带有 L 方法的平滑器来确定 K-Means 聚类的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4033821/

相关文章:

python - 对 TF-IDF 特征向量中的特定特征进行加权,以实现 k 均值聚类和余弦相似度

java - 形成和排序正整数数组的最快策略

statistics - 当 KMeans 返回少于 K 个集群时该怎么办?

c# - 在二维矩阵中查找相邻元素

machine-learning - 一类支持向量机

algorithm - 按每两点之间的距离对簇中的点进行分组的高效算法

r - 使用 Elbow 方法查找簇数时返回多个值

c++ - 对来自 csv 文件的数据执行 OpenCV k-means

algorithm - 在具有一组连续 1 的二维数组中查找所有可能的位排列

c++ - 采用分治法的最小子 vector 大小k