K均值聚类前的PCA

时间:2017-02-27 10:43:08

标签: python cluster-computing cluster-analysis k-means pca

如果我在特征向量上应用PCA然后进行聚类,如下所示:

reduced_data = PCA(n_components=2).fit_transform(data)
kmeans = KMeans(init='k-means++', n_clusters=n_digits, n_init=10)
kmeans.fit(reduced_data)
  1. 减少的数据将是PCA组件,所以之后 在kmean中聚类,您可以获得每个点的标签 (reduced_data),如何从原始数据中知道哪一个?

  2. 如何玩多个PCA组件的数量 集群?感谢。

1 个答案:

答案 0 :(得分:1)

  1. PCA会将您指定的维数从n(在您的问题中未知)减少到n_components = 2.标签不会更改,数据矩阵中的行不会被切换。您可以将生成的聚类直接映射到原始数据。

  2. n_components的选择取决于与原始数据相比保留的方差。首先,k-means不稳健,因此您必须多次初始化并将结果与​​给定的n_components进行比较。其次,您可能希望根据您可以绘制的关联特征值选择变量n_components。 此外,PCA对缩放敏感,因此您应该在PCA之前考虑标准化。 因此,为了回答你的问题,n_components的选择应该来自对要保留的方差的想法,而不是你想要实现的簇的数量。

  3. 另一个想法:您可以使用聚类算法而不是使用K-Means,而不需要聚类的目标numbner作为输入,例如DBSCAN