是否有k-Means clustering算法的在线版本?

在线是指每个数据点都以串行方式处理,每次进入系统时一次处理,因此节省了实时使用的计算时间。

我已经给自己写了一个很好的结果,但是我真的希望有一个“标准化”的东西可以引用,因为它可以在我的硕士论文中使用。

另外,有人对其他在线聚类算法有建议吗?
(lmgtfy失败;))

最佳答案

就在这里。 Google找不到它,因为它通常被称为“顺序k均值”。

您可以通过this section of some Princeton CS class notesRichard 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)的最新著作。

关于cluster-analysis - 在线k均值聚类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3698532/

10-12 21:39