聚类:可变数据维度的训练数据集

时间:2011-12-17 20:08:33

标签: cluster-analysis dimensionality-reduction

我有一个n数据的数据集,其中每个数据由一组提取的特征表示。通常,聚类算法需要所有输入数据具有相同的维度(相同数量的特征),即,输入数据X是n个数据点的n * d矩阵,每个数据点具有d个特征。 就我而言,我之前从我的数据中提取了一些特征,但每个数据的提取特征数量最有可能不同(我的意思是,我有一个数据集X,其中数据点的特征数量不同)。 是否有任何方法可以调整它们,以便使用一些需要数据具有相同尺寸的常见聚类算法对它们进行聚类。

由于

3 个答案:

答案 0 :(得分:1)

听起来你遇到的问题是它是一个'稀疏'的数据集。通常有两种选择。

  1. 使用多维缩放技术降低输入数据集的维度。例如稀疏SVD(例如Lanczos algorithm)或sparse PCA。然后在密集的低维输出上应用传统聚类。

  2. 直接应用稀疏聚类算法,例如sparse k-mean。请注意,如果您在网上看起来很努力,可以找到本文的PDF文件(请尝试使用scholar.google.com)。

  3. [问题澄清后更新]

    在该问题中,可视地分析手写单词的连接组件(线)。对于每个组件,提取固定数量的多维特征。我们需要对单词进行聚类,每个单词可能包含一个或多个连接的组件。

    建议的解决方案:

    首先将连接的组件分类为1000(*)个唯一的组件分类。然后根据它们包含的分类组件对单词进行分类(上面描述的稀疏问题)。

    *请注意,您选择的组件分类的确切数量并不重要,只要它足够高,因为MDS分析会将它们减少到基本的“正交”分类。

答案 1 :(得分:1)

还有一些群集算法,例如DBSCAN,实际上并不关心您的数据。所有这些算法需要的是距离函数。因此,如果您可以为要素指定距离函数,则可以使用DBSCAN(或OPTICS,它是DBSCAN的扩展,不需要epsilon参数)。

因此,关键问题是您希望如何比较功能。这与群集无关,并且高度依赖于域。如果您的功能是单词出现,余弦距离是一个不错的选择(对于不存在的特征使用0)。但是如果你是有一组从图片中提取的SIFT关键点,没有明显的方法可以有效地将不同的特征相互关联,因为没有对特征的顺序(因此可以将第一个关键点与第一个关键点进行比较等)A这里可能的方法是得到另一个 - 统一 - 特征集。通常情况下,词汇功能会用于此类情况。对于图像,这也称为视觉词。实质上,您首先聚类子特征以获得有限的词汇。然后,您可以为每个原始对象分配一个由这些“单词”组成的“文本”,并使用距离函数,例如余弦距离。

答案 2 :(得分:0)

我在这里看到两个选项:

  1. 限制自己使用所有数据点都具有值的功能。
  2. 查看是否可以为缺失的要素生成合理的默认值。
  3. 但是,如果可能,您应该重新采样所有数据点,以便它们都具有所有功能的值。