聚类中距离计算有哪些方法?我们什么时候应该使用它们?

数据挖掘 聚类 距离
2021-09-29 14:10:57

聚类中距离计算有哪些方法?像曼哈顿,欧几里得等?另外,我不知道什么时候应该使用它们。我总是使用欧几里得距离。

4个回答

嗯,有一本书叫

德萨、米歇尔·玛丽和埃琳娜·德萨。
距离百科全书
施普林格柏林海德堡,2009 年。ISBN 978-3-642-00233-5

我想那本书比我能更好地回答你的问题......

选择最适合您的数据的距离函数。

例如,在纬度和经度上,使用像 Haversine 这样的距离。如果你有足够的 CPU,你可以使用更好的近似值,比如 Vincenty 的。

在直方图上,使用分布基距离。推土机 (EMD)、散度、直方图相交、二次形式距离等。

在二进制数据上,例如 Jaccard、Dice 或 Hamming 很有意义。

在非二进制稀疏数据(例如文本)上,tf-idf 权重和余弦的各种变体很流行。

尝试不同距离函数和聚类的最佳工具可能是 ELKI。它有许多距离,以及许多可以与所有这些距离一起使用的聚类算法(例如 OPTICS)。例如堪培拉距离对我来说效果很好。这可能是我选择的“默认”。

在聚类领域有两种广泛用于计算距离的方法。他们是:

  • 曼哈顿距离
  • 欧几里得距离

但是,对于选择上述哪一项没有明确的指示,因此这篇文章可能对您有所帮助。通常,距离度量取决于问题陈述和数据类型。

例如,分别在数据密集和稀疏时使用欧几里得距离和余弦距离。

我总是使用欧几里得距离。

我不会因此而责怪你。然而,在计算笛卡尔距离时(如在推荐系统的情况下),欧几里得距离是首选。

除了众所周知的距离之外,我还想强调一下:曼哈顿距离欧几里得距离

当您对分布进行聚类时,可以使用对称 kl-d。

使用哪个距离函数取决于数据几何本身。在某些情况下,您可以绘制数据并可视化然后做出决定,但在现实世界的问题中,大多数情况下这是不可能的。

对于像 Kmeans 这样的大多数聚类算法,只要距离函数是一个度量,就可以使用它。存在根据数据几何学习度量的方法,您可以使用这些方法对数据进行聚类。

度量学习与降维密切相关。

如果您使用的是 MATLAB,请检查此工具包