均值漂移(Meanshift)算法

均值漂移(Meanshift)算法均值漂移(Meanshift)1.均值漂移的基本概念:沿着密度上升方向寻找聚簇点设想在一个有N个样本点的特征空间初始确定一个中心点center,计算在设置的半径为D的圆形空间内所有的点(xi)与中心点center的向量计算整个圆形空间内所有向量的平均值,得到一个偏移均值将中心点center移动到偏移均值位置重复移动,直到满足一定条件结束2.均值漂移运算:

大家好,又见面了,我是你们的朋友全栈君。

均值漂移(Meanshift)算法理解

1.均值漂移的基本概念:沿着密度上升方向寻找聚簇点

设想在一个有N个样本点的特征空间

初始确定一个中心点center,计算在设置的半径为D的圆形空间内所有的点(xi)与中心点center的向量

计算整个圆形空间内所有向量的平均值,得到一个偏移均值

将中心点center移动到偏移均值位置

重复移动,直到满足一定条件结束

 均值漂移(Meanshift)算法

2.均值漂移运算:

2.1 Mean shift的基础公式:

偏移均值

M(x)=\frac{1}{k}*\sum \limits_{x_i\in S_h}$ (x$_{i}-x)

Sh:以x为中心点,半径为h的高维球区域; k:包含在Sh范围内点的个数; xi:包含在Sh范围内的点

中心更新

将中心点移动到偏移均值位置

 

 均值漂移(Meanshift)算法

 

Mt为t状态下求得的偏移均值;   xt为t状态下的中心

 

2.2 引入核函数的偏移均值:

核函数

核函数只是用来计算映射到高维空间之后的内积的一种简便方法,目的为让低维的不可分数据变成高维可分。利用核函数,可以忽略映射关系,直接在低维空间中完成计算。

引入核函数的偏移均值

在均值漂移中引入核函数的概念,能够使计算中距离中心的点具有更大的权值,反映距离越短,权值越大的特性。改进的偏移均值:

均值漂移(Meanshift)算法

其中,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账号...

(0)
blank

相关推荐

  • TreeTable树形数据列表

    TreeTable树形数据列表使用Treetable展示ajax数据,通用的List集合递归转换为具有层级关系的List集合

  • PO 模式

    PO 模式啊啊

  • 使用ARP命令[通俗易懂]

    使用ARP命令[通俗易懂]讲解ARPCache更新过程,并分析对应请求报文以及响应报文的内容。1.建立网络拓扑2.填写4个主机的ip地址和子网掩码3.分别对主机pc0和pc1的命令行中输入“arp-a”命令查看其ARP高速缓存,发现无任何缓存信息。4.切换到simulation模式,pc0和pc1的ip分别为源地址和目的地址5.创建一个简单的PDU6.可以发现pc0和pc1之间成功进行了一次传输,即pc0得到了pc1的ip地址和MAC地址7.可以看出pc0发送了一个广播报文8.pc1得到响应

    2022年10月31日
  • hashmap扩容过程保证可用_HashMap扩容

    hashmap扩容过程保证可用_HashMap扩容前言JDK1.8对HashMap进行的较大的改动,其中对HashMap的扩容机制进行了优化。在JDK1.8前,在多线程的情况下,使用HashMap进行put操作会造成死循环。这是因为多次put操作会引发HashMap的扩容机制,HashMap的扩容机制采用头插法的方式移动元素,这样会造成链表闭环,形成死循环。JDK1.8中HashMap使用高低位来平移元素,这样保证效率的同时避免了多线程情…

  • 使用 data-* 属性来嵌入自定义数据:

    使用 data-* 属性来嵌入自定义数据:

    2021年10月31日
  • vscode中搭建Golang开发环境(图文并茂)

    vscode中搭建Golang开发环境(图文并茂)vscode中搭建Golang开发环境第一步下载Go安装包,地址:Go语言中文网,安装完成后的目录如下:通过命令行查看当前版本:第二步配置环境变量,新建两个环境变量,如下:其他平台的配置,可以参考goproxy官网。第三步打开vscode,安装一个Go插件,如下:然后打开一个已有的文件夹,并创建一个hello.go的文件,此时,右下角会提示你要安装相应的应用,选择InstallAll,等待安装即可,安装成功如下:到这里环境就搭建完成了第四步在hello.go文件中编写

    2022年10月12日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号