原文:https://blog.csdn.net/hjimce/article/details/45718593

一、mean shift 算法理论
Mean shift 算法是基于核密度估计的爬山算法,可用于聚类、图像分割、跟踪等,因为最近搞一个项目,涉及到这个算法的图像聚类实现,因此这里做下笔记。
(1)均值漂移的基本形式
给定d维空间的n个数据点集X,那么对于空间中的任意点x的mean shift向量基本形式可以表示为:

这个向量就是漂移向量,其中Sk表示的是数据集的点到x的距离小于球半径h的数据点。也就是:

而漂移的过程,说的简单一点,就是通过计算得漂移向量,然后把球圆心x的位置更新一下,更新公式为:

使得圆心的位置一直处于力的平衡位置。

总结为一句话就是:求解一个向量,使得圆心一直往数据集密度最大的方向移动。说的再简单一点,就是每次迭代的时候,都是找到圆里面点的平均位置作为新的圆心位置。

(2)加入核函数的漂移向量

这个说的简单一点就是加入一个高斯权重,最后的漂移向量计算公式为:

因此每次更新的圆心坐标为:

不过我觉得如果用高斯核函数,把这个算法称为均值漂移有点不合理,既然叫均值漂移,那么均值应该指的是权重相等,也就是(1)中的公式才能称之为真正的均值漂移。
我的简单理解mean shift算法是:物理学上力的合成与物体的运动。每次迭代通过求取力的合成向量,然后让圆心沿着力的合成方向,移动到新的平衡位置。

二、mean shift 聚类流程:
假设在一个多维空间中有很多数据点需要进行聚类,Mean Shift的过程如下:

  1. 在未被标记的数据点中随机选择一个点作为中心center;
  2. 找出离center距离在bandwidth之内的所有点,记做集合M,认为这些点属于簇c。同时,把这些求内点属于这个类的概率加1,这个参数将用于最后步骤的分类
  3. 以center为中心点,计算从center开始到集合M中每个元素的向量,将这些向量相加,得到向量shift。
  4. center = center+shift。即center沿着shift的方向移动,移动距离是||shift||。
  5. 重复步骤2、3、4,直到shift的大小很小(就是迭代到收敛),记住此时的center。注意,这个迭代过程中遇到的点都应该归类到簇c。
  6. 如果收敛时当前簇c的center与其它已经存在的簇c2中心的距离小于阈值,那么把c2和c合并。否则,把c作为新的聚类,增加1类。
  7. 重复1、2、3、4、5直到所有的点都被标记访问。
  8. 分类:根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类。

简单的说,mean shift就是沿着密度上升的方向寻找同属一个簇的数据点。

Mean Shift 聚类算法相关推荐

  1. 机器学习(十)Mean Shift 聚类算法

    Mean Shift 聚类算法 原文地址:http://blog.csdn.net/hjimce/article/details/45718593  作者:hjimce 一.mean shift 算法 ...

  2. 均值漂移(mean shift )聚类算法Matlab实现详解

    Mean shift 算法是基于核密度估计的爬山算法,可用于聚类.图像分割.跟踪等,其在声呐图像数据处理也有广泛的应用,笔者在网上找了一遍也没有找到关于Mean shift的matlab实现代码,找到 ...

  3. 【聚类算法】常见聚类算法总结

    转自:https://blog.csdn.net/u010062386/article/details/82499777 感谢博主 1.常见算法 1.原型聚类 "原型"是指样本空间 ...

  4. 五种常见的聚类算法总结

    目录 一.关于聚类的基础描述 1.1  聚类与分类的区别 1.2  聚类的概念 1.3  聚类的步骤 二.几种常见的聚类算法 2.1 K-means聚类算法 1) K-means算法的流程: 2)K- ...

  5. 【机器学习】聚类算法DBSCAN、K-means、Mean Shift对比分析及具体代码实现

    [机器学习]聚类算法DBSCAN.K-means.Mean Shift对比分析及具体代码实现 一.DBSCAN算法(具有噪声的基于密度的聚类方法) 1.算法原理 基于数据分布密度不同对数据进行聚类,把 ...

  6. mean shift聚类matlab,meanshift目标跟踪源程序 meanshift跟踪算法MATLAB源码 - 下载 - 搜珍网...

    压缩包 : MeanShift+深入详细(MatLab源码).rar 列表 MeanShift+深入详细(MatLab源码)/meanshift文章.PPT.word文档.基于meanshift的跟踪 ...

  7. a*算法的优缺点_五种聚类算法一览与python实现

    大家晚上好,我是阿涛. 今天的主题是聚类算法,小结一下,也算是炒冷饭了,好久不用真忘了. 小目录: 1.K-means聚类2.Mean-Shift聚类3.Dbscan聚类4.层次聚类5.GMM_EM聚 ...

  8. [Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. 机器学习7—聚类算法之K-means算法

    K-均值算法(K-means) 前言 聚类算法模型 常见的聚类算法 一.K-means算法描述 二.示例说明K-means算法流程 三.K-means算法中Kmean()函数说明 四.K-means算 ...

  10. 【Python机器学习】聚类算法任务,评价指标SC、DBI、ZQ等系数详解和实战演示(附源码 图文解释)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一.聚类任务 设样本集S={x_1,x_2,-,x_m}包含m个未标记样本,样本x_i=(x_i^(1),x_i^(2),-,x_i^(n))是一 ...

最新文章

  1. linux autofs ftp,Linux NFS自动挂载autofs配置
  2. linux 内核 发送数据,linux 内核tcp数据发送的实现
  3. 速查100 WebServers
  4. 图解iPhone开发新手教程
  5. linux命令大全vi,待整理 - Linux 下的VI命令大全
  6. 利用Arcgis for javascript API绘制GeoJSON并同时弹出多个Popup
  7. 工作327:uni-数据格式处理
  8. Transformer and set Trasformer
  9. 王建宙:中国移动还未与苹果就iPhone达成协议
  10. 5-14卷积神经网添加正则化
  11. 容器大小_C++复习篇(7)序列式容器vector
  12. [项目过程中所遇到的各种问题记录]编辑器篇——使用FCKeditor生成静态分页HTML...
  13. TBB concurrent_set 没有erase
  14. 用于物联网数据收集和传输的边缘网络密钥
  15. RTMP WireShark抓包实例说明
  16. pt与px的对应关系
  17. Lesson 63-64 Who has the most stressful job?
  18. Python3.6+jieba+wordcloud 爬取豆瓣影评生成词云
  19. 科林明伦杯哈尔滨理工大学第六届程序设计团队赛(流水账)
  20. GTD软件比较和选用

热门文章

  1. 外卖返利系统公众号外卖cps返利小程序淘宝客程序淘客侠客外卖CPS
  2. IT项目管理流程总结·二十三
  3. C#实现简单的加密防止拷贝复制软件
  4. 2_simulink搭建RCL_电阻电感电容模块
  5. 制作卡通人物的3种简单方法
  6. 图像处理算法:最大类间方差法
  7. js 简单的鼠标指针小图标
  8. 初中计算机考试ppt操作视频,初中信息技术PPT操作题课件.ppt
  9. 贱人工具箱使用技巧3——方向复制
  10. 新版捷兔云支付网站源码开源版 第三方支付源码 第四方支付源码 免签约支付源码