对于kmeans,matlab onlinephase选项与增量/顺序kmeans相同吗?

时间:2012-08-01 17:51:37

标签: matlab cluster-analysis k-means

我在这里有点困惑。 matlab中现有的kmeans函数是否能够连续查找数据的kmeans?或者,onlinephase是否意味着别的什么?

1 个答案:

答案 0 :(得分:2)

不,'onlinephase'是在通常的“assign-recompute”迭代之后的第二步(在批处理模式下)。它保证在给定距离函数(也给出初始聚类质心)的情况下,通过在聚类之间移动点来找到局部最小解,直到总距离不能进一步减小。

不要将此与发现全局最小值(我认为是NP难问题)相混淆

文档中对此进行了详细解释:

  

算法

     

kmeans使用两阶段迭代算法来最小化   点到质心的距离,在所有k个簇上求和:

     
      
  • 第一阶段使用批量更新,其中每次迭代都包括将点重新分配到最近的集群质心,一次性完成,   然后重新计算聚类质心。这个阶段   偶尔不会收敛到局部最小值的解决方案,   也就是说,将任何一个点移动到a的数据分区   不同的群集增加了总距离。这是更多   可能是小数据集。批处理阶段很快,但可能   只是将解决方案作为第二阶段的起点。

  •   
  • 第二阶段使用在线更新,如果这样做会减少距离总和,则会单独重新分配点数   每次重新分配后重新计算质心。每次迭代   在第二阶段包括一次通过所有点。   第二阶段将收敛到局部最小值,尽管可能存在   是总距离较低的其他局部最小值。问题   找到全局最小值只能通过一般来解决   详尽的(或聪明的,或幸运的)选择起点,但使用   具有随机起始点的几个重复通常导致a   解决方案是全球最低限度。

  •