【发布时间】:2012-07-15 14:35:39
【问题描述】:
我想知道在 kmeans 中使用的距离度量是否需要三角不等式。
【问题讨论】:
标签: machine-learning cluster-analysis distance data-mining k-means
我想知道在 kmeans 中使用的距离度量是否需要三角不等式。
【问题讨论】:
标签: machine-learning cluster-analysis distance data-mining k-means
好吧,经典的 kmeans 是在具有 L2 距离的欧几里得空间上定义的,因此您会自动从中得到三角不等式(三角不等式是定义距离/度量的一部分)。如果您使用的是非欧几里得度量,则需要定义“均值”的含义等。
如果你没有三角不等式,这意味着两点可能相距很远,但都可能靠近第三点。您需要考虑如何解释这个案例。
话虽如此,我过去曾使用平均链接层次聚类和距离度量,但它不能满足三角不等式等要求,它非常适合我的需求。
【讨论】:
k-means 为欧几里得距离设计,恰好满足三角不等式。
使用其他距离函数是有风险的,因为它可能会停止收敛。然而,原因是不是三角不等式,而是均值可能不会最小化距离函数。 (算术平均值最小化平方和,而不是任意距离!)
有更快的 k-means 方法利用三角不等式来避免重新计算。但是,如果您坚持经典的 MacQueen 或 Lloyd k-means,那么您确实不需要需要三角不等式。
请小心使用其他距离函数,以免陷入无限循环。您需要证明均值可以最小化您到聚类中心的距离。如果你不能证明这一点,它可能无法收敛,因为目标函数不再单调递减!所以你真的应该尝试证明你的距离函数的收敛性!
【讨论】: