如何评估 k-means 集群中的距离?

数据挖掘 k-均值 距离
2022-02-22 09:14:12

我尝试使用 k-means 集群(使用 SQLserver + R),我想知道如何正确估计距离。

例如,如果我们考虑欧几里得距离形成集群的中心,如果对于同一个数据集,我们有不同大小的集群会发生什么?大集群中的“正常”点的距离将高于小集群中的“异常”点。

所以:

  • 它与每个集群上的中心/尺度欧几里得距离有关吗?(然后将异常值视为具有最高比例距离的异常值)
  • 还有其他距离需要考虑吗?
1个回答

在考虑您的问题时,需要牢记几个要点:

  1. 在应用 k-means 聚类之前,您应该始终规范化或标准化您的数据。大多数其他聚类算法也是如此。如果您在多个维度上进行聚类,则距离度量是没有意义的,除非每个维度具有相同的权重,因此标准化是必不可少的。想象一下按体重和收入将人们聚集在一起。如果没有标准化,结果将取决于您是以英镑和美元、公斤和比索还是摩尔和欧元来考虑的。缺乏规范化引入了非确定性。

  2. 严格来说,k-means 算法的稳定性已经证明了欧几里得距离度量,并且不能保证与其他距离度量的收敛。更实际地,大多数明智的指标都达到了收敛性,这并不是什么大问题,但值得提出警告。

  3. k-means 不是一种易于用于集群内统计分析的聚类算法。空间中的每个点都是 k 个集群之一的成员,无论该点有多少异常值。还有其他聚类方法更擅长发现和忽略异常值。 DBSCAN就是这样一种算法,它非常好,可以发现集群并忽略噪声。

现在,回答你的问题:

它与每个集群上的中心/尺度欧几里得距离有关吗?(然后将异常值视为具有最高比例距离的异常值)

是的,你当然可以这样做。将 k-means 与异常值检测相结合当然是可能的,但可能不是最优雅或最有效的算法。听起来有点像穷人的 DBSCAN。欧几里得距离工作正常,但只需使用聚类的质心和标准偏差进行第二组归一化。

是否有其他类型的距离需要考虑?

由于许多不同的原因,还有许多其他有用的指标。如前所述,k 均值收敛证明仅适用于欧几里得距离。对于异常值检测,欧几里得似乎是最好的,但在某些情况下,余弦相似度指标可能有用。人们可能会建议 L1(曼哈顿)距离指标,但我发现这仅在您的数据存在显着的线性相关性时才有用,这可以通过降维来解决。

简短的回答:

试一试,因为欧几里得应该可以正常工作,但也可以通过 DBSCAN 进行聚类,它内置了异常值检测。

希望这可以帮助!