【问题标题】:PCA before K-mean clusteringK-mean 聚类之前的 PCA
【发布时间】:2017-07-17 22:39:21
【问题描述】:

如果我在特征向量上应用 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 组件的数量 集群?谢谢。

【问题讨论】:

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


    【解决方案1】:
    1. PCA 将您指定的维度数从 n(您的问题中未知)减少到 n_components = 2。标签不会更改,数据矩阵中的行不会切换。您可以将生成的集群直接映射到原始数据上。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-30
      • 2013-03-23
      • 2017-09-12
      • 2015-07-29
      • 2018-08-12
      • 2021-11-18
      • 1970-01-01
      • 2021-08-06
      相关资源
      最近更新 更多