当使用均值移位算法时,如何决定最终的聚类



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

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

Thanks in advance

均值漂移聚类查找是一个简单的迭代过程,实际上保证收敛。迭代从起始点x开始,迭代步骤是(注意x可能有几个组件,因为算法也将在高维中工作):

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

  • <设置em> x & lt;—— x '

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

这可以在聚类分析中使用,从x的不同值开始。最终值将在不同的集群中心结束。群集的数量是未知的(除了它是<=点的数量)。

上层算法为:

  • 查看起始值的选择
  • 对每个值计算收敛值,如上图
  • 所示。
  • 如果该值不在收敛值列表中,则将其添加到列表中(允许对数值不精确的合理容忍)

然后你有一个簇的列表。唯一困难的事情是找到一个合理的初始值选择。对于一维或二维很容易,但是对于更高维度的穷举搜索就不太可能了。

所有进入相同模式(收敛点)的起始点属于同一簇。

如果你在2D图像上这样做,它应该足以计算每个像素的梯度(即第一次迭代),这可能是有趣的。这是一种使用普通卷积技术的快速操作,然后相对容易将像素分组成簇。

最新更新