2014-09-20
Mean Shift,可以翻译为均值漂移
。
假设在一个多维空间中有很多数据点需要进行聚类,Mean Shift的过程如下:
1、在未被分类的数据点中随机选择一个点作为中心center;
2、找出离center距离在bandwidth之内的所有点,记做集合M,认为这些点属于簇c。
3、以center为中心点,计算从center开始到集合M中每个元素的向量,将这些向量相加,得到向量shift。
4、center = center+shift。即center沿着shift的方向移动,移动距离是||shift||。
5、重复步骤2、3、4,直到shift的大小很小(就是迭代到收敛),记住此时的center。注意,这个迭代过程中遇到的点都应该归类到簇c。如果收敛时的center已经被归类到c2,那么把c2和c合并。
6、重复1、2、3、4、5直到所有的点都被归类。
简单的说,mean shift就是沿着密度上升的方向寻找同属一个簇的数据点。
上面的算法只是mean shift的基础算法,现在已经对其进行了拓展,用于图像处理等领域。
在Mean Shift Clustering给出了mean shift的matlab代码。
Meanshift,聚类算法讲meanshift在图像处理中的应用。
Mean Shift: A Robust Approach Toward Feature Space Analysis是关于mean shift的一篇重要论文。
Mean Shift Clustering非常简要地介绍了mean shift。