因此,我正在考虑对 k 均值使用不同的距离度量,例如欧几里德距离、曼哈顿距离、余弦距离、切比雪夫距离等。我只想知道这些与聚类相关的距离度量的用例。
1 回答
简短的回答是:
你不应该。
K-means 实际上不是基于距离的。
它基于方差最小化。并且通过将每个对象分配给接近平方欧几里得距离的对象来最小化方差(因为平方欧几里得本质上与方差相同!)。而且由于 sqrt 函数是单调的,您也可以将其视为通过最近的欧几里得距离进行赋值。
现在,如果您插入任意其他距离函数,它将不再最小化方差,并且 k-means 可能会停止收敛。
请注意,k-means 的另一个步骤是更新均值。再次为了最小化方差,将聚类中心移动到均值是最佳的。如果你插入另一个距离函数,这可能不再成立。繁荣。
但是,也有例外。显然,对于某些距离函数,均值也很有效。所以它实际上也会收敛。
此外,还存在 K-medoids 等变体。这实际上是为了最小化距离而设计的,并且适用于任意距离。它不需要均值:相反,它使用数据集中最核心的对象。这使您可以在任意距离上恢复收敛!
更新:这是其他距离测量可能会失败的示例。
假设我们使用绝对皮尔逊相关来测量相似度。以下两个系列完全负相关,即绝对 pearson 中的距离为 0:
+1 +2 +3 +4 +5
-1 -2 -3 -4 -5
如果我们计算这些实例的均值,均值是0 0 0 0 0
,而皮尔逊相似度是 A) 不再定义良好,因为标准差已变为 0;即使我们会修复这个定义差距,平均值也将是与此度量相关的最不相似的向量。
因此,仅当您可以证明均值函数最小化您的距离时,才使用具有其他距离的 k-means。作为练习,您可能想要证明均值确实使平方欧几里得距离最小化。