我已经对坐标点(经度、纬度)进行了聚类,并从聚类标准的最佳聚类数中发现了令人惊讶的不利结果。标准取自clusterCrit()包。我试图在图上聚类的点(数据集的地理特征清晰可见):
完整的程序如下:
- 对 10k 点进行层次聚类,并保存 2:150 个聚类的中心点。
- 将 (1) 中的中心点作为 163k 观测值的 kmeans 聚类的种子。
- 检查了 6 个不同的聚类标准以获得最佳聚类数。
只有 2 个聚类标准给出了对我有意义的结果——Silhouette 和 Davies-Bouldin 标准。对于他们两个,都应该在情节上寻找最大值。似乎两者都给出了“22 个集群是一个不错的数字”的答案。对于下面的图表:x 轴上是聚类的数量,y 轴上是标准的值,对于图像上的错误描述,请见谅。Silhouette 和 Davies-Bouldin 分别为:
现在让我们看看 Calinski-Harabasz 和 Log_SS 值。最大值将在图中找到。该图表明,该值越高,聚类效果越好。如此稳定的增长是相当惊人的,我认为150个集群已经是一个相当高的数字了。分别位于 Calinski-Harabasz 和 Log_SS 值的图下方。
现在最令人惊讶的部分是最后两个标准。对于 Ball-Hall,需要两个聚类之间的最大差异,而对于 Ratkowsky-Lance,最大差异。Ball-Hall 和 Ratkowsky-Lance 图分别为:
与第 3 条和第 4 条标准相比,最后两个标准给出了完全相反的答案(集群数量越少越好)。这怎么可能?对我来说,似乎只有前两个标准能够对聚类产生任何意义。大约 0.6 的轮廓宽度还不错。我应该跳过给出奇怪答案的指标并相信那些给出合理答案的指标吗?
编辑:绘制 22 个集群
编辑
您可以看到数据很好地聚集在 22 个组中,因此表明您应该选择 2 个集群的标准似乎有弱点,启发式无法正常工作。当我可以绘制数据或者数据可以包含在少于 4 个主成分中然后绘制时,这是可以的。但如果不是呢?除了使用标准之外,我应该如何选择集群的数量?我看到测试表明 Calinski 和 Ratkowsky 是非常好的标准,但对于看似简单的数据集,它们仍然给出了不利的结果。所以也许问题不应该是“为什么结果不同”,而是“我们能在多大程度上相信这些标准?”。
为什么欧几里得度量不好?我对它们之间实际的、准确的距离并不感兴趣。我知道真实距离是球形的,但对于所有点 A、B、C、D,如果 Spheric(A,B) > Spheric(C,D) 也比 Euclidian(A,B) > Euclidian(C,D) 应该是足以用于聚类度量。
为什么我要聚集这些点?我想建立一个预测模型,每个观察的位置都包含很多信息。对于每个观察,我也有城市和地区。但是有太多不同的城市,我不想制作例如 5000 个因子变量;因此我考虑通过坐标对它们进行聚类。它工作得很好,因为不同区域的密度不同,算法发现它,22个因子变量就可以了。我也可以通过预测模型的结果来判断聚类的好坏,但我不确定这在计算上是否明智。感谢新算法,如果它们在庞大的数据集上快速运行,我一定会尝试它们。



