k-均值vs k-中位数?


14

我知道有k均值聚类算法和k均值。一个使用均值作为聚类的中心,另一个使用中位数。我的问题是:什么时候/在哪里使用?


如果您有多个维度,则必须定义中位数(也许要计算中位数)。如果仅取每个值的中值,则会失去旋转特性。另一个可能性是k-质心
亨利

Answers:


14

k均值最小化了集群内方差,该方差等于平方的欧几里得距离。

通常,算术平均值会这样做。它不是优化的距离,但是从平均偏差平方。

k中值使绝对偏差最小化,该绝对偏差等于曼哈顿距离。

通常,每轴中位数应执行此操作。如果您想最小化绝对偏差之和(即sum_i abs(x_i-y_i)),而不是平方值,则它是均值的理想估计。

这不是准确性的问题。这是正确性的问题。;-)

因此,这是您的决策树:

  • 如果您的距离是欧几里德距离的平方,请使用k-means
  • 如果您的距离是出租车标准,请使用k位数
  • 如果您还有其他距离,请使用k-medoids

一些例外:据我所知,最大化余弦相似度与最小化L2标准化数据的欧几里德距离平方有关。因此,如果您的数据是L2规范化的;然后在每次迭代中对平均值进行l2归一化,然后可以再次使用k-means。


我对中位数使曼哈顿距离最小化的说法有些质疑,因为多维数据中位数的概念没有唯一的共识。这不是错误的,但是我发现在多维上下文中要做出误导性陈述。中位数有多种多维概括,其中许多与最小化曼哈顿距离无关。
蒂姆·塞吉

1
我将其更改为每轴中位数。我希望你现在更快乐。
已退出–Anony-Mousse

2

如果您要进行分析而不是考虑极值的可能影响,请使用k均值,但如果要更准确地使用k中值


5
您能以任何方式支持和/或解释这些主张吗?
2014年

是的,您能详细说明一下吗?有例子吗?
杰克·吐温2014年

2
我认为这是因为“中位数”可以容忍离群值,而“均值”则完全受到它们的影响。例如:如果我们有数据点{1,2,3,5,78},那么显然78是离群值。这些数据的中位数是3,平均值是17.8。因此,中位数是汇总这些数据的最佳方法。
Fadwa
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.