K - 表示使用 PCA 减少的数据和原始数据的聚类有什么不同吗?

数据挖掘 机器学习 Python 数据挖掘 聚类 无监督学习
2022-02-16 19:47:53

我正在研究聚类,我有 90 个特征和 13500 个数据点,在删除了 pearson 相关性超过 90% 的相关变量后,我的特征空间减少到 70。此外,几乎所有我原来的 90 个特征都有很多值为零(超过 70-80% 的数据点)。我在算法实现方面所做的是:

  1. 通过基于剪影指数选择聚类数量,对具有 70 个特征(全部为数字)的原始数据进行 K-Means。
  2. 通过基于轮廓指数选择聚类数量将维度减少到 2 来运行 K-Means。

我观察到的和我相应的问题是:

  1. pca 减少数据上的 K-Means 提供了更好的集群。有什么方法可以使用这个有意义的集群吗?就像将集群标签从 pca 减少的数据分配给原始数据
  2. 原始数据上的 K-Means 和 pca 简化数据上的 K-Means 有何不同?我知道 pca 会将数据减少到我选择的两个暗淡,并保留了具有最大方差的组件。但是我可以将 pca 缩减数据中的集群标签分配给原始数据吗?这是一个正确的方法吗?我猜不会。

此外,还有许多 K-Means 实现,例如 Lloyds (Python)、Elkan(Python)、Hartigan-Wong(R)、Forgy(R)、MacQueen(R)。其中哪一个可用于数值变量,哪一个可用于 categorical ?我认为,wong 用于不确定的分类变量。另外,我可以简单地排除哪些实现?

1个回答

但是我可以将 pca 缩减数据中的集群标签分配给原始数据吗?这是一个正确的方法吗?我猜不会。

是的,这完全是正确的做法。主成分只是解释最大方差的原始特征的线性组合,因此您绝对可以将它们用于聚类。此外,由于您只保留了其中的 2 个,因此您还从数据中消除了很多噪音 - 由于 K-means 基于距离,因此拥有 70 个特征的事实可能会出现问题,因为您对无用特征和重要的距离。

总结 - 是的,根据您在主成分上获得的 Kmeans 结果分配集群。

不幸的是,我无法帮助您实现,但请记住,在混合分类变量和连续变量时,您需要在点之间定义适当的距离度量。并且任何好的实现都应该允许您对仅分类数据或仅连续数据执行此操作。不确定混合。