Apache Spark MLlib WSSSE 错误

Apache Spark MLlib WSSSE Error

谁能告诉我 Apache Spark KMeansModel 中的 "Within Set Sum of Squared Error (WSSSE)" 和 computeCost 方法到底是什么?

标准的KMeans算法旨在最小化每组点之间距离的平方和:平方欧氏距离。这就是 WCSS objective。 计算出 val result = KMeans.train(<trainData>, <clusterNumber>, <Iterations>) 后,您可以使用组内误差平方和(类似于每个 K 分区中每个观测值的距离之和)来评估结果:

val error = result.computeCost(<trainData>)

希望对您有所帮助。

同意其他回复对WSSSE的解释。只是想补充一点,WSSSE 是比 WSSSE 更好的指标。 WSSSE 随数据集的大小而变大,而平均 WSSSE 更能衡量集群的内聚性。

WSSSE: 标准 KMeans 算法旨在最小化每个集合的点之间的距离的平方和:欧氏距离的平方。这就是 WCSS objective。计算出 val result = KMeans.train(<trainData>, <clusterNumber>, <Iterations>) 后,您可以使用组内误差平方和来评估结果(类似于每个 K partition 中每个观测值的距离之和):

val error = result.computeCost(<trainData>)

我不确定,但我认为这里没有从 KMean 的角度很好地解释 WSSSE 或 SSE(误差平方和)。这个演示文稿描述得更好 http://www.cs.uky.edu/~jzhang/CS689/PPDM-Chapter3.pdf

本质上,SSE 是,对于每个观察到的数据点,我们计算该观察到的数据点与 cluster/centroid 之间的欧几里得距离。我们将所有距离相加,得到 SSE。

直觉是,如果 clusters/centroids 接近它们分组的数据点,则 SSE 会很低。但是一旦总是可以增加K并获得较低的SSE但段很差(无论如何,那是一个单独的讨论)。