【问题标题】:K-means:Updaing centroids successively after each additionK-means:每次相加后连续更新质心
【发布时间】:2017-09-12 17:45:09
【问题描述】:

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

让我们选择前两个,即 A,B 作为初始集群的质心。 然后计算 C 到 A 以及到 B 的距离。假设 C 离 A 更近。 在下一步之前用质心 A 更新集群的质心,即现在新的质心是 (A+C)/2 和 B。 然后计算 D 与这些新质心的距离,依此类推。

【问题讨论】:

    标签: k-means


    【解决方案1】:

    是的,我们似乎可以在 k-means 中增量更新质心,如 Kumar 的 “数据挖掘简介” 的第 8 章所述。这是实际的文字:

    增量更新质心

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

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

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

    不利的一面是,以增量方式更新质心会引入顺序依赖性。换句话说,生成的簇可能取决于处理点的顺序。虽然这可以通过 随机化处理点的顺序,基本的 K-means 在将所有点分配给集群之后更新质心的方法没有顺序依赖性。此外,增量更新稍微多一点 昂贵的。然而,K-means 收敛得相当快,因此, 快速切换集群的点数变得相对较少。

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 2015-01-19
      • 2020-04-09
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2019-05-14
      • 2013-01-12
      • 2021-11-25
      相关资源
      最近更新 更多