2017-02-27 147 views
0

如果我施加PCA上的特征向量,然后我做聚类,例如像以下:PCA前K均值聚类

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组件数量?谢谢。

回答

0
  1. PCA减少了尺寸的,你从n个指定n_components = 2的标签不改号(在你的问题不详),在数据矩阵的行不会切换。您可以将生成的群集直接映射到原始数据上。

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

另一种思考:除了使用K-手段,你可以使用聚类算法不需要集群的目标numbner作为输入,如DBSCAN