K-means:每次添加后连续更新质心

时间:2017-04-17 05:50:28

标签: k-means

假设我们有五个数据点A,B,C,D,E,我们正在使用K-means聚类算法将它们聚类成两个聚类。我们可以更新质心如下:

让我们选择前两个,即A,B作为初始聚类的质心。 然后计算C与A以及B的距离.Say C更接近A. 在下一步之前更新具有质心A的簇的质心,即现在新的质心是(A + C)/ 2和B. 然后计算D与这些新质心的距离等等。

1 个答案:

答案 0 :(得分:2)

是的,我们似乎可以在k-means中逐步更新质心,如"数据挖掘简介"库马尔。这是实际的文字:

  

逐步更新质心

     

在将所有点分配给群集后,不是更新群集质心,而是在每次将点分配给群集后,可以逐步更新质心。请注意,这需要在每个步骤中对群集质心进行零或两次更新,因为一个点要么移动到新群集(两个更新),要么停留在其当前群集中(零更新)。使用增量更新策略可确保不生成空集群,因为所有集群都以单个点开始,如果集群只有一个点,则该点将始终重新分配给同一集群。

     

此外,如果使用增量更新,则为该点的相对权重   被加入可能会被调整;例如,点的重量通常减少为   聚类继续进行。虽然这可以带来更好的准确性和更快的速度   收敛,很难做出相对重量的好选择,特别是在各种情况下。这些更新问题类似于更新人工神经网络权重所涉及的问题。

     

增量更新的另一个好处与使用目标有关   除了“最小化SSE。”假设我们被赋予任意目标   用于衡量一组聚类的优良性的功能。当我们处理一个   个别点,我们可以计算每个目标函数的值   可能的群集分配,然后选择优化目标的群集。第8.5.2节给出了替代目标函数的具体示例。

     

在消极方面,逐步更新质心会引入顺序依赖性。换句话说,产生的聚类可能取决于处理点的顺序。虽然这可以解决   随机化处理点的顺序,基本的K均值   在将所有点分配给集群之后更新质心的方法没有顺序依赖性。此外,增量更新稍微多一些   昂贵。然而,K-means收敛得相当快,因此,   快速切换群集的点数变得相对较小。