聚类标准的不利结果

机器算法验证 r 聚类
2022-03-28 05:11:55

我已经对坐标点(经度、纬度)进行了聚类,并从聚类标准的最佳聚类数中发现了令人惊讶的不利结果。标准取自clusterCrit()包。我试图在图上聚类的点(数据集的地理特征清晰可见):

绘制所有观测值

完整的程序如下:

  1. 对 10k 点进行层次聚类,并保存 2:150 个聚类的中心点。
  2. 将 (1) 中的中心点作为 163k 观测值的 kmeans 聚类的种子。
  3. 检查了 6 个不同的聚类标准以获得最佳聚类数。

只有 2 个聚类标准给出了对我有意义的结果——Silhouette 和 Davies-Bouldin 标准。对于他们两个,都应该在情节上寻找最大值。似乎两者都给出了“22 个集群是一个不错的数字”的答案。对于下面的图表:x 轴上是聚类的数量,y 轴上是标准的值,对于图像上的错误描述,请见谅。Silhouette 和 Davies-Bouldin 分别为:

Silhoette 标准图 Davies-Bouldin 标准图

现在让我们看看 Calinski-Harabasz 和 Log_SS 值。最大值将在图中找到。该图表明,该值越高,聚类效果越好。如此稳定的增长是相当惊人的,我认为150个集群已经是一个相当高的数字了。分别位于 Calinski-Harabasz 和 Log_SS 值的图下方。

Calinski-Harabasz 标准图 Log_SS 标准图

现在最令人惊讶的部分是最后两个标准。对于 Ball-Hall,需要两个聚类之间的最大差异,而对于 Ratkowsky-Lance,最大差异。Ball-Hall 和 Ratkowsky-Lance 图分别为:

Ball-Hall 准则图 Ratkowsky-Lance 标准图

与第 3 条和第 4 条标准相比,最后两个标准给出了完全相反的答案(集群数量越少越好)。这怎么可能?对我来说,似乎只有前两个标准能够对聚类产生任何意义。大约 0.6 的轮廓宽度还不错。我应该跳过给出奇怪答案的指标并相信那些给出合理答案的指标吗?

编辑:绘制 22 个集群22集群解决方案


编辑

您可以看到数据很好地聚集在 22 个组中,因此表明您应该选择 2 个集群的标准似乎有弱点,启发式无法正常工作。当我可以绘制数据或者数据可以包含在少于 4 个主成分中然后绘制时,这是可以的。但如果不是呢?除了使用标准之外,我应该如何选择集群的数量?我看到测试表明 Calinski 和 Ratkowsky 是非常好的标准,但对于看似简单的数据集,它们仍然给出了不利的结果。所以也许问题不应该是“为什么结果不同”,而是“我们能在多大程度上相信这些标准?”。

为什么欧几里得度量不好?我对它们之间实际的、准确的距离并不感兴趣。我知道真实距离是球形的,但对于所有点 A、B、C、D,如果 Spheric(A,B) > Spheric(C,D) 也比 Euclidian(A,B) > Euclidian(C,D) 应该是足以用于聚类度量。

为什么我要聚集这些点?我想建立一个预测模型,每个观察的位置都包含很多信息。对于每个观察,我也有城市和地区。但是有太多不同的城市,我不想制作例如 5000 个因子变量;因此我考虑通过坐标对它们进行聚类。它工作得很好,因为不同区域的密度不同,算法发现它,22个因子变量就可以了。我也可以通过预测模型的结果来判断聚类的好坏,但我不确定这在计算上是否明智。感谢新算法,如果它们在庞大的数据集上快速运行,我一定会尝试它们。

2个回答

你应该问自己的问题是:你想要实现什么。

所有这些标准都是启发式的。您可以通过另一种数学函数来判断一种数学优化技术的结果。这实际上并不能衡量结果是否良好,而只是衡量数据是否符合某些假设。

现在既然你有一个经纬度的全球数据集,欧几里得距离实际上已经不是一个好的选择。然而,其中一些标准和算法(k-means…)需要这个不合适的距离函数。

您应该尝试的一些事情:

  • 更好的算法。试试DBSCANOPTICS,它们都不需要你指定集群的数量!它们还有其他参数,但例如距离最小点数应该更容易为该数据集设置。
  • 可视化。与其查看一些数学测量的统计数据,不如通过目测选择最佳结果!所以首先,可视化集群,看看结果是否有意义。
  • 考虑你想找到什么。如果您将大陆分开,那么数学标准会很高兴。但是你不需要算法来做到这一点,各大洲已经非常有名了!那么想发现什么?
  • 去除异常值。k-means 和层次聚类都不太喜欢异常值,您可能需要增加聚类的数量才能通过数据中的异常值数量来查找(上面提到的 DBSCAN 和 OPTICS对异常值更加稳健)。
  • 更合适的距离函数。地球近似球形,用大圆距离代替欧几里得距离。
  • 如果您需要使用欧几里德距离,请尝试将数据转换为3D ECEF 坐标系。这将产生低于地球表面的聚类中心,但它允许聚类阿拉斯加,并且欧几里德距离至少是真实表面距离的下限。

在 stackoverflow 上查看例如这个相关的问题/答案

经度和纬度是定义球体上点的角度,因此您可能应该查看大圆距离或点之间的其他测地线距离,而不是欧几里得距离。

同样如前所述,某些显式基于模型的聚类算法(如混合模型)和隐式基于模型的聚类算法(如 K-means)对聚类的形状和大小做出假设。在这种情况下,您是否希望您的数据适合基础模型?如果不是,那么不对集群的形状/大小做出假设的基于密度的方法可能更合适。