机器学习-*-MeanShift聚类算法及代码实现

MeanShift是一种基于密度的聚类算法,常用于目标追踪。算法通过不断迭代,寻找高密度区域作为类簇中心。一般形式是计算点与其领域内点的平均距离,核函数形式引入权重,使得靠近中心的点影响更大。Python实现中,利用高斯核函数进行改进,无需预设类簇数量。与KMeans相比,MeanShift更能适应非球形类簇,但需要调整参数如radius和bandwidth。
摘要由CSDN通过智能技术生成

MeanShift

该算法也叫做均值漂移,在目标追踪中应用广泛。本身其实是一种基于密度的聚类算法。
主要思路是:计算某一点A与其周围半径R内的向量距离的平均值M,计算出该点下一步漂移(移动)的方向(A=M+A)。当该点不再移动时,其与周围点形成一个类簇,计算这个类簇与历史类簇的距离,满足小于阈值D即合并为同一个类簇,不满足则自身形成一个类簇。直到所有的数据点选取完毕。

一般形式

对于给定的 n 维空间 R n R^n Rn 中的 m 个样本点 X i X^i Xi,i=1…m,对于其中一个样本X,他的均值漂移向量为: M h ( X ) = 1 K ∗ ∑ X i ∈ S h ( X i − X ) M_h(X)=\frac{1}{K}*\sum_{X^i\in S_h}(X^i-X) Mh(X)=K1XiSh(XiX),其中 S h S_h Sh指的是一个半径为h的球状领域,定义为 S h ( X ) = { y ∣ ( y − x ) ( y − x ) T ≤ h 2 } S_h(X)=\{y|(y-x)(y-x)^T \le h^2\} Sh(X)={ y(yx)(yx)Th2},如下图所示
在这里插入图片描述
蓝色圈内表示半径h的区域 S h S_h Sh,黄色箭头尾部指的是计算前的数据点 X X X,箭头本身是指的计算后的漂移向量 M h ( X ) M_h (X) Mh(X)。由上图可以看出,均值漂移会不断的往密度较大的区域移动。熟悉的同学可能了解到,一般用的

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值