为什么在使用 2D 和 3D 数据时,Silhouette Score 和最佳聚类数会发生变化?

数据挖掘 聚类 k-均值 python-3.x 海运
2022-02-23 04:49:21

我正在尝试使用 Kmeans 聚类。我的数据(向量)有 300 个维度,我使用 PCA 将其转换为 2D 和 3D。现在,为了找到最佳聚类数,我使用了剪影分数。然而,对于 2D,最好的剪影分数显示为 3 个集群(剪影分数 = 0.45),而对于 3D,它显示了 9 个集群(剪影分数 = 0.3861)。

我想知道这是否正常?如果是,这是什么原因?我应该选择 2D 还是 3D?

另外,尝试 2D 和 3D 的原因是因为我想使用 seaborn 绘制 3D 图。

1个回答

是的,它可能发生。事实上,这是很正常的,因为 2D 中存在不同的集群,而 3D 中存在不同的集群,因为或多或少的信息被添加到数据中(通过具有更多维度)。这是维度诅咒的副产品

添加尽可能多的相关信息将使集群更接近底层组所以3D会比2D好。这是一般的观察当然,在某些情况下,在低维流形中投影数据确实更好,因为它可以消除噪声和/或捕获特定属性,而不是在所有(可能不相关的)维度上进行聚类(维度灾难的另一个副产品)。

如果您的数据中的相关信息具有低维,但该信息在原始数据中的许多维度上是相关的,则需要一种特征提取方法来从原始数据中捕获低维相关信息(例如 PCA、ICA、.. )。

有关沿此方向的一些参考,请参见例如:

  1. 如何进行高维聚类
  2. 对高维和多维生物数据的 K-means 聚类研究
  3. 我怎么知道我的 k-means 聚类算法正遭受维数灾难?