使用无监督降维的模糊聚类

时间:2015-10-13 12:52:01

标签: machine-learning scikit-learn cluster-analysis dimensionality-reduction

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

考虑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专注于保持数据点之间的距离而不是方差更自然地类似于群集)。但是从根本上说,许多维数降低算法隐含地保留了关于数据所处的基础流形的数据,而模糊聚类向量仅保存有关数据点之间关系的信息(可能隐含地编码或者可能不隐含地编码其他信息)。

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