是否存在 k-means 中没有最优 k 的情况?

机器算法验证 机器学习 聚类 k-均值
2022-03-05 16:31:14

这至少在我脑海中已经存在了几个小时。我试图为 k-means 算法(使用余弦相似度度量)的输出找到最佳 k,所以我最终将失真绘制为集群数量的函数。我的数据集是 600 维空间中 800 个文档的集合。

据我了解,在这条曲线上找到拐点或肘点应该至少可以大致告诉我我需要将数据放入的集群数量。我把图表放在下面。通过使用最大二阶导数测试获得绘制红色垂直线的点。在完成所有这些之后,我陷入了一个更简单的问题:这张图告诉我关于数据集的什么信息?

它是否告诉我不值得聚类并且我的文档缺乏结构或者我需要设置一个非常高的 k?一件奇怪的事情是,即使 k 很低,我也看到类似的文档聚集在一起,所以我不确定为什么会得到这条曲线。有什么想法吗?

在此处输入图像描述

4个回答

在大多数情况下,我会认为这样的图基本上意味着数据中没有集群结构。然而,像这样在非常高的维度上进行聚类是很棘手的,因为对于欧几里得距离度量,所有距离都趋向于随着维度数量的增加而相同。有关此主题的一些论文的参考资料,请参阅Wikipedia 页面。简而言之,问题可能只是数据集的高维性。

这本质上是“维度的诅咒”,请参阅Wikipedia 页面。

可能感兴趣的一篇论文是 Sanguinetti, G.,“聚类数据集的降维”,IEEE Transactions on Pattern Analysis and Machine Intelligence,vol。30 号 3,第 535-540 页,2008 年 3 月 ( www )。这有点像 LDA 的无监督版本,它寻找强调集群结构的低维空间。也许您可以在执行 k-means 之前将其用作特征提取方法?

你究竟如何使用余弦相似度?这就是所谓的球形 K 均值吗?您的数据集非常小,因此我会尝试将其可视化为网络。为此,很自然地使用相似性(实际上,例如余弦相似性或 Pearson 相关性),应用截止(仅考虑高于特定相似性的关系),并将结果视为网络,例如 Cytoscape 或 BioLayout . 这对于了解数据非常有帮助。其次,我将计算您的数据矩阵的奇异值,或适当转换和归一化矩阵(以某种形式获得的文档-文档矩阵)的特征值。簇结构应该(再次)显示为特征值或奇异值的有序列表中的跳跃。

通常是的,k-means 可能会收敛到可能被判断为不合适的非常不同的解决方案。这尤其适用于形状不规则的集群。

获得更多直觉,您还可以尝试另一种可视化方法:对于 k-means,您可以使用 Graphgrams 使用 k-means 可视化多次运行(请参阅 WEKA graphgram 包 - 最好由包管理器或这里获得。介绍和示例也可以是在这里找到。

如果我正确理解图表,它是集群数量的图,x 轴上的 K 和 y 轴上的集群内距离?

因为您的 K-means 目标函数是最小化 WCSS,所以该图应始终单调递减。随着您添加更多簇,簇中点之间的距离将始终减小。这是模型选择的基本问题,因此您需要采用更复杂的方法。

也许尝试 Gap 统计:www-stat.stanford.edu/~tibs/ftp/gap.ps 或其他类似的。

此外,您可能会发现 K-means 不是适合这项工作的工具。您希望找到多少个集群?使用方差规则进行聚类降维是不合适的。当投影到第一台 K-1 PC 上时,请参阅这篇论文是适当的预处理措施: http: //people.csail.mit.edu/gjw/papers/jcss.ps

通过将投影绘制到前两个主成分上,您可以快速查看这是否正确。如果有明确的分离,那么 K-means 应该没问题,如果没有,你需要研究其他东西。也许是 K 子空间或其他子空间聚类方法。请记住,这些方法适用于欧几里得距离。我不确定余弦会如何变化。