k-means vs k-median?

机器算法验证 聚类 k-均值
2022-01-20 03:28:16

我知道有k-means聚类算法和k-median。一种使用均值作为聚类的中心,另一种使用中位数。我的问题是:何时/何地使用哪个?

2个回答

k-means 最小化簇内方差,它等于平方欧几里得距离。

一般来说,算术平均值就是这样做的。它不会优化距离,而是与平均值的平方偏差。

k-medians 最小化绝对偏差,等于曼哈顿距离。

一般来说,每轴中位数应该这样做。如果您想最小化绝对偏差的总和(即 sum_i abs(x_i-y_i)),而不是平方的,它是一个很好的均值估计器。

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

所以这是你的决策树:

  • 如果您的距离是平方欧几里得距离,请使用k-means
  • 如果您的距离是Taxicab metric,请使用k-medians
  • 如果您有任何其他距离,请使用k-medoids

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

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