【问题标题】:Guidance on a data mining project数据挖掘项目指南
【发布时间】:2014-03-17 21:02:31
【问题描述】:

我正在为我的班级开展一个数据挖掘项目,我想就我的想法提出专家的观点:

我拥有的数据是一个非常大的矩阵,其中的变量比示例多得多(10,000,000 对 50),因此存在过拟合问题。

我想做的是通过将变量重新分组为“组”来理解这个数据集,因为我觉得其中一些变量之间应该存在关系(相关性)。为此,我定义了变量之间的“距离”(它们的 Pearson 相关性)。

我想对变量应用聚类方法来创建这些变量组(按照我的教授的建议)。

我的问题是这个数据集太大了,我知道任何聚类算法都需要一段时间才能执行。有没有更适合这个问题的聚类方法?

【问题讨论】:

  • 你应该减少特征的数量。在 1000 万个空间中几乎没有任何东西可以工作。
  • 考虑使用具有索引支持的软件,因为这可能有助于加速算法。我发现一些实现(特别是在纯 R 和 Weka 中)比它们需要的慢得多。
  • 哦,如果这 1000 万个变量碰巧是 binarydiscrete(例如,因为它们来自文本),您可能想要考虑针对这些特定领域的适当技术。例如对文本进行词干提取和停用词过滤。

标签: machine-learning data-mining cluster-analysis


【解决方案1】:

您可以尝试应用PCA 来减少特征数量(如果我理解正确,您将其称为变量),然后应用任何黑盒聚类算法。

您可以使用PCA from sklearn 来实现此目的。

一个示例 sn-p 如下所示:

def decomposition_pca(train_data):
    dims_to_keep = #dimensions you want to retain (the # variables)
    """ Linear dimensionality reduction """
    pca = decomposition.PCA(n_components = dims_to_keep, whiten=True)
    train_pca = pca.fit_transform(train_data)
    return train_pca

【讨论】:

  • 您对应用PCA后的聚类方法有什么建议吗?
  • 由于您没有提及您的数据,我认为我不能选择其中一个。从 K-means 开始可能是个好主意。
  • 来自 sklean 的 PCA 不适用于大型数据集。我可能会使用随机 pca
  • @teaLeef 我的目的是为您指出一个可能的解决方案。您可能必须使用其他一些 pca 实现。
猜你喜欢
  • 2012-11-01
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 2018-05-07
  • 2014-05-18
  • 1970-01-01
  • 2019-04-24
相关资源
最近更新 更多