在线 k-means 聚类
Posted
技术标签:
【中文标题】在线 k-means 聚类【英文标题】:Online k-means clustering 【发布时间】:2011-04-11 13:02:01 【问题描述】:k-Means clustering算法有在线版本吗?
在线我的意思是每个数据点都是串行处理的,当它们进入系统时一次一个,因此在实时使用时可以节省计算时间。
我自己写了一篇效果不错的文章,但我真的更希望有一些“标准化”的东西可以参考,因为它会在我的硕士论文中使用。
另外,有人对其他在线聚类算法有什么建议吗? (lmgtfy 失败 ;))
【问题讨论】:
【参考方案1】:是的,有。 Google 没能找到它,因为它通常被称为“序列 k 均值”。
您可以在this section of some Princeton CS class notes by Richard Duda 中找到两个顺序 K-means 的伪代码实现。我已经复制了以下两种实现之一:
Make initial guesses for the means m1, m2, ..., mk
Set the counts n1, n2, ..., nk to zero
Until interrupted
Acquire the next example, x
If mi is closest to x
Increment ni
Replace mi by mi + (1/ni)*( x - mi)
end_if
end_until
关于它的美妙之处在于,您只需要记住每个集群的平均值和分配给集群的数据点的数量。更新这两个变量后,您可以丢弃数据点。
我不确定在哪里可以找到它的引文。我会开始查看 Duda 的经典文本 Pattern Classification and Scene Analysis 或更新版本的 Pattern Classification。如果没有,您可以尝试 Chris Bishop 的最新著作或 Daphne Koller 和 Nir Friedman 最近的文本。
【讨论】:
谢谢。这一切都不同了。 适当的引用实际上可能是 MacQueen 出版物。他肯定包括这个平均更新规则,据我所知,他只通过了一次。那么你就有了这个算法。 我建议用以上是关于在线 k-means 聚类的主要内容,如果未能解决你的问题,请参考以下文章