是什么让k-medoid中的距离测量“比k-means更好”?

时间:2014-02-07 05:08:05

标签: machine-learning cluster-analysis data-mining k-means

我正在阅读k-means聚类和k-medoid聚类之间的区别。

据推测,在k-medoid算法中使用成对距离度量是有利的,而不是更平常的欧几里德距离类型度量的平方和来评估我们用k均值找到的方差。显然,这种不同的距离度量会以某种方式降低噪声和异常值。

我已经看到了这个说法,但我还没有看到关于这个说法背后的数学的任何理由。

什么使k-medoid中常用的成对距离测量更好?更准确地说,缺乏平方项如何使k-medoids具有与取中位数概念相关的理想属性?

3 个答案:

答案 0 :(得分:29)

1。 K-medoid更灵活

首先,您可以使用k-medoids与任何相似性度量。然而,K-means可能无法收敛 - 它实际上只能用于与 mean 一致的距离。所以例如Absolute Pearson Correlation不能与k-means一起使用,但它适用于k-medoids。

2。 medoid的稳健性

其次,k-medoids使用的medoid与 median 大致相当(事实上,还有k-medians,就像K-means,但是对于曼哈顿距离)。如果你查看关于中位数的文献,你会看到很多解释和例子为什么中位数对异常值比算术平均值更强大。从本质上讲,这些解释和例子也适用于medoid。它是代表点的鲁棒估计值,而不是k均值中使用的均值。

考虑这个一维的例子:

[1, 2, 3, 4, 100000]

此组的中位数和中位数均 3 。平均值是20002。

您认为哪个更能代表数据集?均值具有较小的平方误差,但假设该数据集中可能存在测量误差...

从技术上讲,统计中使用分解点的概念。中位数的击穿点为50%(即数据点的一半可能不正确,结果仍未受影响),而平均值的击穿点为0(即单个大型观测值可能产生错误的估计值)。

我没有证据,但我认为medoid将具有与中位数类似的分解点。

3。 k-medoids要贵得多

这是主要的缺点。通常,PAM比k-means需要更长的运行时间。因为它涉及计算所有成对距离,它是O(n^2*k*i);而k-means在O(n*k*i)中运行,通常,迭代次数的k倍为k*i << n

答案 1 :(得分:6)

我认为这与选择群集中心有关。 k-means将选择群集的“中心”,而k-medoid将选择群集的“最中心”成员。 在具有异常值的群集中(即远离群集的其他成员的点),k-means将群集的中心置于异常值,而k-medoid将选择一个更集群的成员(medoid)作为中心。

现在取决于您使用群集的内容。如果你只想对一堆物体进行分类,那么你并不关心中心的位置;但是如果聚类被用来训练一个决定者,它现在会根据这些中心点对新物体进行分类,那么k-medoid会给你一个更接近人类放置中心位置的中心。

用维基百科的话来说:

与k-means相比,它[[k-medoid]对噪声和异常值更具鲁棒性,因为它最小化了成对差异的总和,而不是欧几里德距离的平方和。“

以下是一个例子:

假设您想要在k = 2的一个维度上进行聚类。一个集群的大部分成员大约1000个,另一个集团大约-1000个;但是有一个异常值(或噪音)在100000。 它显然属于1000左右的集群,但是k-means将使中心点远离1000并且朝向100000.这甚至可以使1000集群中的一些成员(比如具有值500的成员)被分配给 - 1000集群。 k-medoid将选择1000左右的一个成员作为medoid,它可能会选择一个大于1000的成员,但它不会选择异常值。

答案 2 :(得分:3)

在@ Eli的回答中添加了一个小小的音符,K-medoid对于噪声和异常值比k-means更强大,因为后者选择了聚类中心,这主要是一个“美德点”,另一方面前者从集群中选择“实际对象”。

假设您在一个簇中有五个2D点,​​坐标为(1,1),(1,2),(2,1),(2,2)和(100,100)。如果我们不考虑群集之间的对象交换,使用k-means,你将得到群集的中心(21.2,21.2),它被点(100,100)分散了注意力。但是,k-medoid将根据其算法选择(1,1),(1,2),(2,1)和(2,2)中的中心。

这是一个有趣的小程序(E.M. Mirkes, K-means and K-medoids applet. University of Leicester, 2011),您可以在2D平面中随机生成数据集,并比较k-medoid和k-means学习过程。