K-Means 初始化

数据挖掘 聚类 无监督学习
2022-01-25 20:16:48

K-Means 随机初始化质心,但还有其他初始化方法。在这篇论文中, http://ilpubs.stanford.edu:8090/778/1/ 2006-13.pdf,他们建议最初随机选择一个数据点,然后根据与初始质心的距离选择其他质心。

我的问题是:这如何给你正确的结果?说我的数据集群自然地分成三个集群,围绕 (x, y) 点 (1, 1)、(0, 0) 和 (-1, -1) 的嘈杂集群。假设我使用论文中的方法,最初选择一个数据点 (1.32, 0.98) 并将其标记为集群 #1 的中心。根据论文,我根据距离选择下一个质心,所以下一个点将在 (-1, -1) 附近。假设为集群 #2 选择的数据点是 (-1.12, -0.89)。前两个步骤是有道理的,但现在我继续集群 #3 并再次根据距离进行选择,因此我最终将另一个集群中心放置在非常靠近集群 #2 的中心的位置。我在这里想念什么?不应该根据与已经初始化的集群中心的距离总和来选择中心吗?

编辑:最初,我随机选择一个数据点标记为集群 #1 的中心。我选择红点。现在我计算红点和所有其他数据点之间的距离,并选择最远的点作为集群 #2 的中心。这是绿点。我的问题是:根据论文,我重复这一点并计算从红点到所有剩余点的距离,然后走最远的距离,但这让我回到了绿点附近,但我试图到达中心集群。

在此处输入图像描述

1个回答

n个质心从与以下成比例的分布中选择D(x)2,但要注意如何D(x)被定义为。从论文(第 3 页顶部):

特别是,让D(x)表示从数据点到我们已经选择的最近中心的最短距离。

请注意D(x)是距离x到最近的质心。将其与您如何选择点的描述进行比较:

我重复这个并计算从红点到所有剩余点的距离,然后走最远的地方,但这让我回到了绿点附近,但我试图到达中心集群。

与其计算所有剩余点与红点之间的距离,不如计算每个点与其最近的 centroid之间的距离。

对于簇中 (1, 1) 周围的点,您将计算到红点的距离,所有距离都相对较小。同样,对于 (-1, -1) 周围的点,您将计算到绿点的距离,所有这些距离都非常小。

但是,对于 (0, 0) 周围的点,它们中的一些会更靠近红色质心,一些会更靠近绿色质心,但它们与任何一个都不是很接近。这意味着D(x)对于 (0, 0) 簇中的点来说,将会很大,您可能会选择其中一个点作为下一个质心。

那有意义吗?