我正在为我的课程进行一个数据挖掘项目,我想听听专家的意见:
我手头的数据是一个非常大的矩阵,变量的数量远多于样本(1000万对50),因此存在过拟合问题。
我试图通过将变量重新分组为“组”来理解这个数据集,因为我觉得这些变量之间应该存在某种关系(相关性)。为此,我定义了变量之间的“距离”(它们的皮尔逊相关系数)。
我想对变量应用聚类方法来创建这些变量组(这是我的教授建议的)。
我的问题是这个数据集非常大,我知道任何聚类算法的执行都会花费很长时间。是否有更适合这个问题的聚类方法?
回答:
你可以尝试应用主成分分析(PCA)来减少特征的数量(如果你理解正确的话,你称之为变量),然后应用任何黑盒聚类算法。
你可以使用sklearn中的PCA来实现这一点。
一个示例代码片段如下:
def decomposition_pca(train_data): dims_to_keep = #你想要保留的维度(变量的数量) """ 线性降维 """ pca = decomposition.PCA(n_components = dims_to_keep, whiten=True) train_pca = pca.fit_transform(train_data) return train_pca