这是一个很好的例子来说明为什么您不应该将 k-means 与其他距离函数一起使用.
k 均值确实not尽量减少距离。它最大限度地减少了一维偏差平方和 (SSQ).
这在数学上相当于欧几里得距离的平方,所以它确实最小化了欧几里得距离,作为数学副作用。确实如此not最小化任意性other距离,这不等于方差最小化。
就你而言,很高兴看到它失败的原因;我必须记住这是一个演示案例。
您可能知道,k 均值(即 Lloyds)包含两个步骤:按最小平方偏差进行分配,然后重新计算均值.
现在的问题是,重新计算平均值与绝对皮尔逊相关性不一致.
让我们取两个相关系数为 -1 的向量:
+1 +2 +3 +4 +5
-1 -2 -3 -4 -5
并计算mean:
0 0 0 0 0
繁荣。它们与平均值完全不相关。事实上,Pearson 相关性并不均匀明确的对于这个向量来说,因为它的方差为零......
为什么会出现这种情况?因为您将 k 均值误解为基于距离。其实也一样多算术平均值基于。算术平均值是最小二乘 (!!) 估计量 - 它最小化偏差平方和。这就是平方欧几里德距离起作用的原因:它优化与重新计算平均值相同的数量。优化同一目标both步骤使算法收敛。
另请参阅此推土机距离的反例 https://stats.stackexchange.com/a/112803/7828,其中 k 均值的平均步骤产生次优结果(尽管可能不如绝对皮尔逊那么糟糕)
考虑使用而不是使用 k 均值k-中心点又名 PAM,其中does适用于任意距离。或者许多其他聚类算法之一,包括DBSCAN https://en.wikipedia.org/wiki/DBSCAN and OPTICS https://en.wikipedia.org/wiki/OPTICS_algorithm.