【问题标题】:How does one decide the final clusters when using the means shift algorthm?使用均值偏移算法时如何确定最终的聚类?
【发布时间】:2014-08-17 04:15:16
【问题描述】:

我正在阅读有关均值转移聚类算法 (http://en.wikipedia.org/wiki/Mean_shift) 的信息,这就是我目前所得到的。对于数据集中的每个点:选择距离它一定距离内的所有点(包括原始点),计算所有这些点的平均值,重复直到这些平均值稳定。

我感到困惑的是,如何从这里开始决定最终的集群是什么,以及这些意味着在什么条件下合并。另外,用于选择点的距离是在迭代中波动还是保持不变?

提前致谢

【问题讨论】:

    标签: algorithm cluster-analysis


    【解决方案1】:

    均值偏移聚类发现是一个简单的迭代过程,实际上可以保证收敛。迭代从起点 x 开始,迭代步骤是(注意 x 可能有几个组成部分,因为算法也适用于更高维度):

    • 计算x周围所有点的加权平均位置x'——也许最简单的形式是计算内所有点的位置平均值>d 与 x 的距离,但高斯函数也是常用的并且在数学上是有益的。

    • 设置 x x'

    • 重复直到 xx' 之间的差异非常小

    这可以通过从不同的 x 值开始用于聚类分析。最终值将在不同的集群中心结束。无法知道聚类的数量(除了

    上层算法是:

    • 选择起始值
    • 对于每个值,如上图计算收敛值
    • 如果该值尚未在收敛值列表中,则将其添加到列表中(允许对数值不精确有一些合理的容忍度)

    然后你就有了集群列表。唯一困难的是找到一个合理的起始值选择。使用一维或二维很容易,但使用更高维的穷举搜索不太可能。

    最终进入相同模式(收敛点)的所有起点都属于同一个集群。

    有趣的是,如果您在 2D 图像上执行此操作,计算每个像素的梯度(即第一次迭代)就足够了。这是一种使用常见卷积技术的快速操作,然后将像素分组到集群中相对容易。

    【讨论】:

    • 这回答了“我什么时候停止?”问题,但它没有回答“什么时候 2 个质心被认为是相同的?” .考虑到该算法指定我们对每个点重复该步骤并且我们最终得到未知数量的集群,我不得不问:最终集群是否被认为是包含在彼此相交的质心内的所有点的集合?我希望这是有道理的
    • @omu_negru:如果两个质心在同一位置,则它们是相同的。当然,对于计算的不精确性必须有一定的容忍度。这是将值添加到列表中或不添加到列表中的阶段。如果从该点开始的算法最终进入其质心,则该点属于集群。最终的聚类由质心列表表示,每个质心都有一个属于该聚类的点列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 2019-09-15
    • 2016-01-28
    • 1970-01-01
    • 2018-12-21
    • 2016-02-10
    • 1970-01-01
    相关资源
    最近更新 更多