2014-02-18 38 views
0

我对数据挖掘项目工作了我的课,我想来看我的想法专家观点:指导对数据挖掘项目

我的数据是有很多非常大的矩阵变量比例子(10,000,000对50),所以有一个overfitting的问题。

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

我想将聚类方法应用于变量以创建这些变量组(根据我的教授的建议)。

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

+0

你应该减少了一些功能。在一千万个空间中几乎没有任何工作要做。 – mp85

+0

考虑使用带**索引支持**的软件,因为这可能有助于加速算法。我发现一些实现(特别是在纯R和Weka中)比他们需要的慢得多。 –

+1

哦,如果碰巧这1000万个变量是* binary *或* discrete *(例如因为它们来自文本),您可能需要考虑适用于这些特定域的技术。例如为文本设置和停止单词过滤。 –

回答

0

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

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

一个示例代码段是这样:

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 
+0

会尝试这个,并会让你知道thx – teaLeef

+0

你有关于PCA应用后的聚类方法的建议吗? – teaLeef

+0

既然你没有提及你的数据,我不认为我可以选择一个。从K-means开始可能是一个好主意。 – axiom