大家好,又见面了,我是你们的朋友全栈君。
均值漂移(Meanshift)算法理解
1.均值漂移的基本概念:沿着密度上升方向寻找聚簇点
设想在一个有N个样本点的特征空间
初始确定一个中心点center,计算在设置的半径为D的圆形空间内所有的点(xi)与中心点center的向量
计算整个圆形空间内所有向量的平均值,得到一个偏移均值
将中心点center移动到偏移均值位置
重复移动,直到满足一定条件结束
2.均值漂移运算:
2.1 Mean shift的基础公式:
偏移均值
Sh:以x为中心点,半径为h的高维球区域; k:包含在Sh范围内点的个数; xi:包含在Sh范围内的点
中心更新
将中心点移动到偏移均值位置
Mt为t状态下求得的偏移均值; xt为t状态下的中心
2.2 引入核函数的偏移均值:
核函数
核函数只是用来计算映射到高维空间之后的内积的一种简便方法,目的为让低维的不可分数据变成高维可分。利用核函数,可以忽略映射关系,直接在低维空间中完成计算。
引入核函数的偏移均值
在均值漂移中引入核函数的概念,能够使计算中距离中心的点具有更大的权值,反映距离越短,权值越大的特性。改进的偏移均值:
其中,x为中心点;xi为带宽范围内的点;n为带宽范围内的点的数量;g(x)为对核函数的导数求负
3.均值漂移的应用:
聚类(K均值聚类)
图像分割(将图像映射到特征空间,对采样点进行均值漂移聚类)
对象轮廓检验(光线传播算法)
目标跟踪(求解最优化Bhattacharya系数函数)
4.均值漂移运算步骤:
1、在未被分类的数据点中随机选择一个点作为中心点;
2、找出离中心点距离在带宽之内的所有点,记做集合M,认为这些点属于簇c。
3、计算从中心点开始到集合M中每个元素的向量,将这些向量相加,得到偏移向量。
4、中心点沿着shift的方向移动,移动距离是偏移向量的模。
5、重复步骤2、3、4,直到偏移向量的大小满足设定的阈值要求,记住此时的中心点。
6、重复1、2、3、4、5直到所有的点都被归类。
7、分类:根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159246.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...