我们什么时候将降维与聚类结合起来?

机器算法验证 聚类 主成分分析 降维 文本挖掘 svd
2022-01-18 05:28:35

我正在尝试执行文档级聚类。我构建了术语文档频率矩阵,并尝试使用 k-means 对这些高维向量进行聚类。我所做的不是直接聚类,而是首先应用 LSA(潜在语义分析)奇异向量分解来获得 U、S、Vt 矩阵,使用碎石图选择合适的阈值并在缩减矩阵上应用聚类(特别是 Vt,因为它给了我一个概念文档信息)这似乎给了我很好的结果。

我听说有人说 SVD(奇异向量分解)聚类(通过使用余弦相似度等),并且不确定我是否可以在 SVD 的输出上应用 k-means。我认为这在逻辑上是正确的,因为 SVD 是一种降维技术,给了我一堆新的向量。另一方面,k-means 会将簇的数量作为输入,并将这些向量划分为指定数量的簇。这个程序是否有缺陷,或者有什么可以改进的方法?有什么建议么?

2个回答

这绝不是一个完整的答案,您应该问的问题是“在进行降维时保留了什么样的距离?”。由于诸如 K-means 之类的聚类算法仅对距离进行操作,因此(理论上)要使用的正确距离度量是通过降维保留的距离度量。这样,降维步骤可以看作是在低维空间中对数据进行聚类的计算捷径。(也为了避免局部最小值等)

这里有许多我不会假装理解的微妙之处(局部距离与全局距离,相对距离如何失真等),但我认为这是从理论上考虑这些事情的正确方向。

回复您的标题“我们什么时候将降维与聚类结合起来?” 而不是完整的问题。一个可能的原因很明显:当我们想要保护异常值时。K-means 算法,如果没有初始中心提示,则将云中距离最远的 k 个点作为初始中心,并且这些很可能是异常值。PCA 的预先处理中和了位于初级组件中的异常值 - 通过将它们投影到 PCA 中保留的少数高级组件上。