均值偏移(Mean shift)聚类算法是一种基于滑动窗口(sliding-window)的算法,它视图找到密集的数据点。而且,它还是一种基于中心的算法,他的目标是定位每一组群/类的中心点,通过更新中心点的候选点来实现滑动窗口中点的平均值。这些候选窗口在后期处理阶段被过滤,以消除几乎重复的部分,形成最后一组中心点及其对应的组。

  1. 为了解释这一变化,我们将考虑二维空间中的一组点。我们从一个点C(随机选择)为中心的圆形滑窗开始,以半径r为内核。均值偏移是一种爬山算法,他需要在内个步骤中反复地将这个内核移动到一个更高的密度区域,直到收敛。
  2. 在每一次迭代中,滑动窗口会移向密度较高的区域,将中心点移动到窗口内的点的平均值(因此得名)。滑动窗口中的密度与它内部的点的数量成比例。自然地,通过移向窗口中的点的平均值,它将逐渐向更高的点密度方向移动。
  3. 我们继续根据均值移动滑动窗口,知道没有方向移动可以容纳内核中的更多点。看看上面的图表;我们一直在移动这个圆,知道我们不在增加密度(也就是窗口中的点数)。
  4. 步骤1到3的过程是用许多滑动窗口完成的,知道所有的点都位于一个窗口内。当多个滑动窗口重叠的时候,包含最多的点的窗口会被保留。然后,数据点根据它们所在的滑动窗口聚类。

下面展示了从端到端所有滑动窗口的这个过程演示。每个黑点代表一个滑动窗口的质心,每个灰色点都是一个数据点。

与K-Means聚类相比,均值偏移不需要选择聚类的数量,因为它会自动地发现这一点。这是一个巨大的优势。聚类中心收敛于最大密度的事实也是非常可取的,因为它非常直观地理解并适合于一种自然数据驱动。缺点是选择窗口大小/半径r是非常关键的,所以不能疏忽。

推荐算法-聚类-均值偏移聚类(爬山算法)相关推荐

  1. 聚类算法-K均值(K-means)

    摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时候上述条件得不到满足,尤其是在处理海量 ...

  2. 4.聚类的五种主要算法

    原博文: 聚类是一种机器学习技术,它涉及到数据点的分组.给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组.理论上,同一组中的数据点应该具有相似的属性和/或特征,而不同组中的数据点应该 ...

  3. Python编写的数字拼图游戏(含爬山算法人机对战功能)

    数字拼图游戏与拼图游戏原理一致,把打乱了的数字或图片经移动,拼成给定的目标数字或图片,其中总有一个空的地方,让相邻(上下左右)的方块移动,直至达到目标. 游戏代码由浙江温州永嘉县教师发展中心应根球老师 ...

  4. python拼图游戏代码的理解_Python编写的数字拼图游戏(含爬山算法人机对战功能)...

    数字拼图游戏与拼图游戏原理一致,把打乱了的数字或图片经移动,拼成给定的目标数字或图片,其中总有一个空的地方,让相邻(上下左右)的方块移动,直至达到目标. 游戏代码由浙江温州永嘉县教师发展中心应根球老师 ...

  5. 旅行商问题(动态规划_爬山算法_遗传算法)

    问题描述 ​ 旅行商问题(Travelling Salesman Problem, 简记TSP,亦称货郎担问题):设有n个城市和距离矩阵D=[dij],其中dij表示城市i到城市j的距离,i,j=1, ...

  6. 【AI】Hill Climbing 爬山算法

    爬山算法 浅谈爬山算法 爬山算法的一种改进方法 爬山算法是对DFS的一种改进 浅谈爬山算法 爬山算法 每次拿相邻点与当前点进行比对,取两者中较优者作为爬坡的下一步.循环直到该点的相邻点中不再有比其更大 ...

  7. 爬山算法改进-探测器-python-全局最优解

    爬山算法改进 前言 一.爬山算法 二.算法改进-探测器 1.递归寻找局部最优值 2.探测器搜索全局最优值 总结 前言 爬山法(climbing method)是一种优化算法,它一般从一个随机某一点开始 ...

  8. 建模方法(六)-爬山算法

    爬山算法顾名思义就是不断需找自变量使得当前的函数值小于新的自变量对应的函数值.他和模拟退火算法很像,可以说模拟退火算法也是爬山算法的一类. 爬山算法,是一种局部贪心的最优算法. 该算法的主要思想是:每 ...

  9. java模拟多人爬山_基于爬山算法求解TSP问题(JAVA)

    一.TSP问题 TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题.货郎担问题,是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选 ...

最新文章

  1. 【BZOJ】1013 [JSOI2008]球形空间产生器sphere
  2. Android studio断开svn连接
  3. js输出一个菱形_Webpack 4入口、输出和ES6模块
  4. linux下的二进制文件的编辑和查看
  5. esplise自定义快捷代码补全_【Eclipse】_Eclipse自动补全增强方法 常用快捷键
  6. Github | Facebook人工智能实验室出品Pythia模块框架
  7. 自学python要多久-怎么自学python,大概要多久?
  8. 苹果6用U盘越狱_iOS12.3.1 A12 支持在线越狱?作者黑人问号
  9. IDEA 设置导入/导出
  10. python多行注释出错_python 有多行注释运行报错
  11. Raspberry pi 3 DSI LCD研究筆記2nd TN92
  12. 【unity发布webgl】遇到的问题和解决办法
  13. 树形选择排序(第十章 P279)
  14. 室内可见光定位matlab代码,visible-led-communication 这里给出了几个可见光通信的MATLAB程序...
  15. 射频day7:微带线;带状线
  16. 派大汤的数据结构错题本
  17. python源代码的后缀名是什么_Python
  18. vue版本的仿京东放大镜代码还有原生js版本的。(组件封装)
  19. win2003 php5.2.17,win2003下搭建FastCGI+php5.2.17
  20. 人机交互设备(HID)

热门文章

  1. Python中的内存管理机制
  2. linux更换主板后无法启动网卡
  3. zabbix 邮件报警
  4. 学习这门课的一些问题
  5. C语言 基础60题(5)
  6. DIV与Table布局在大型网站的可用性比较
  7. Scott Mitchell 的ASP.NET 2.0数据教程之十一: 基于数据的自定义格式化
  8. 后盾网lavarel视频项目---自定义验证和自定义验证规则
  9. 使用poi进行数据的导出Demo
  10. layui进度条bug