3

无监督的降维算法将矩阵 NxC1 作为输入,其中 N 是输入向量的数量,C1 是每个向量的分量数(向量的维数)。结果,它返回一个新矩阵 NxC2 (C2 < C1),其中每个向量的分量数量较少。

模糊聚类算法将矩阵 N*C1 作为输入,其中 N 是输入向量的数量,C1 是每个向量的分量数。结果,它返回一个新的矩阵 NxC2(C2 通常低于 C1),其中每个向量的每个分量都表示该向量属于相应簇的程度。

我注意到两类算法的输入和输出在结构上是相同的,只是结果的解释发生了变化。此外,scikit-learn 中没有模糊聚类实现,因此有以下问题:

使用降维算法进行模糊聚类有意义吗?例如,将FeatureAgglomerationTruncatedSVD应用于从文本数据中提取的 TF-IDF 向量构建的数据集,并将结果解释为模糊聚类是没有意义的吗?

4

1 回答 1

3

从某种意义上说,当然。这有点取决于您希望如何在下游使用结果。

考虑 SVD 截断或排除主成分。我们已经投影到一个新的、保持方差的空间,对新流形的结构几乎没有其他限制。原始数据点的新坐标表示对于某些元素可能有很大的负数,这有点奇怪。但是人们可以毫不费力地转移和重新调整数据。

然后可以将每个维度解释为集群成员权重。但是考虑模糊聚类的一个常见用途,即生成硬聚类。请注意,使用模糊聚类权重(例如,只取最大值)是多么容易。考虑新的降维空间中的一组点,例如 <0,0,1>,<0,1,0>,<0,100,101>,<5,100,99>。如果阈值化,模糊聚类会给出类似 {p1,p2}, {p3,p4} 的东西,但如果我们在这里取最大值(即将维度减少的轴视为成员,我们会得到 {p1,p3},{p2,p4 },例如对于 k=2。当然,可以使用比 max 更好的算法来推导硬成员关系(例如通过查看成对距离,这适用于我的示例);这样的算法被称为聚类算法.

当然,不同的降维算法可能对此效果更好或更差(例如,专注于保留数据点之间的距离而不是方差的 MDS 更自然地类似于集群)。但从根本上说,许多降维算法隐含地保留了有关数据所在的底层流形的数据,而模糊聚类向量仅保存有关数据点之间关系的信息(可能隐含也可能不隐含编码其他信息)。

总的来说,目的有点不同。聚类旨在查找相似数据组。特征选择和降维旨在通过改变嵌入空间来减少数据的噪声和/或冗余。我们经常使用后者来帮助前者。

于 2016-08-18T17:17:42.063 回答