【问题标题】:What makes the distance measure in k-medoid "better" than k-means?是什么让 k-medoid 中的距离度量比 k-means “更好”?
【发布时间】:2014-03-04 09:29:17
【问题描述】:

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

据说在 k-medoid 算法中使用成对距离度量有一个优势,而不是更熟悉的平方和欧几里德距离类型度量来评估我们用 k-means 发现的方差。显然,这种不同的距离度量以某种方式减少了噪声和异常值。

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

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

【问题讨论】:

  • stats.stackexchange.com 可能是获得更深入和理论答案的更好地方。
  • 查看我的更新答案,了解来自可靠统计数据的 细分点 的概念。中心点可能是一个稳健的统计量,平均值一点也不稳健。

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


【解决方案1】:

1。 K-medoid 更灵活

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

2。中间体的稳健性

其次,k-medoids 使用的 medoid 与 median 大致相当(实际上,也有 k-median,类似于 K-means,但用于曼哈顿距离)。如果您查找有关中位数的文献,您会看到很多解释和示例,说明为什么中位数比算术平均值更能抵抗异常值。本质上,这些解释和示例也适用于 medoid。与 k-means 中使用的平均值相比,它是对代表点的更稳健的估计。

考虑这个一维示例:

[1, 2, 3, 4, 100000]

这个集合的中位数和中间点都是3。平均值是 20002。

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

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

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

3。 k-medoids 要贵得多

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

【讨论】:

  • 感谢您的 cmets。但我仍然没有看到相似性度量中缺少平方项与中位数概念之间的相关性。
  • 这不是平方项本身。这是总和,对异常值不稳健。将真正极端的价值放入您的数据中。比如说,你的数据是0,1,2,3,100000000。比较平均值和中位数,哪个更稳健?
  • 关于 k-medoids 和中位数之间的类比部分有点手忙脚乱?
  • 嗯,显然它们不一样。但是如果你通过delta 使异常值更加极端,这不会对中心点产生太大影响,就像中位数一样;因为所有其他候选人都受到同样的影响。
【解决方案2】:

我认为这与集群中心的选择有关。 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 的成员,但不会选择异常值。

【讨论】:

    【解决方案3】:

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

    假设您在一个簇中有五个二维点,坐标分别为 (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 的学习过程。

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 2019-01-27
      • 2018-04-06
      • 2021-04-29
      • 2013-09-12
      • 2013-02-02
      • 2019-06-01
      • 2018-09-30
      • 2012-04-09
      相关资源
      最近更新 更多