1. 密度聚类思想

密度聚类思想是,只要一个区域中的点的密度大于某个阈值,就把他加到与之相近的聚类中去。
优点:能对任意形状聚类,对噪声不敏感。
缺点:计算密度单元的复杂度大,可以提前建立空间索引降低计算量。

2. DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有“噪声”数据中发现任意形状的聚类。

2.1 DBSCAN若干概念

  1. 对象的\(\epsilon-\)邻域:给定对象在半径\(\epsilon\)内的区域。
  2. 核心对象:对于给定的数目m,如果一个对象的\(\epsilon-\)邻域至少包含m个对象,则称该对象为核心对象。
  3. 直接密度可达:给定一个对象集合D,如果p是在q的\(\epsilon-\)邻域内,而q是一个核心对象,则p从对象q出发直接密度可达。 >如图\(\epsilon = 1cm\),m=5,q是一个核心对象,从对象q出发到对象p是直接密度可达的。
  4. 密度可达:如果存在一个对象链\(p_1 p_2 \cdots\),\(p_1=q\),\(p_n=p\),对\(p_i \in D\),\(\left( 1 \leqslant i \leqslant n \right)\),\(p_{i+1}\)是从\(p_i\)关于\(\epsilon\)和m直接密度可达的,则对象p是从对象q关于\(\epsilon\)和m密度可达的。
  5. 密度相连:如果对象集合D中存在一个对象o,使得对象p和q是从o关于\(\epsilon\)和m密度可达的,那么对象p和q是关于\(\epsilon\)和m密度相连的。
  6. 簇:一个基于密度的簇是最大的密度相连对象的集合。
  7. 噪声:不包含在任何簇中的对象称为噪声。

很明显密度可达是单向关系,密度相连是双向关系

2.2 DBSCAN算法流程

DBSCAN通过检查数据集中每一个对象的\(\epsilon-\)邻域来寻找聚类。
如果一个点p的\(\epsilon-\)邻域包含多于m个对象,则创建一个p作为核心对象的新簇。然后,DBSCAN反复地寻找从这些核心对象直接密度可达的对象,这个过程可能涉及密度可达簇的合并。当没有新的点可以被添加到任何簇时,该过程结束。

标记所有点为unvisited
while 有点是unvisited随机选择一个unvisited点p,标记为visitif p的邻域至少有m个对象:创建一个新簇C,把p添加到C令N为p邻域所有对象集合for p` in N:if p` =  unvisited:p` = visitif p` 邻域有m个对象,把这些对象添加到Nif p` 不属于任何簇,则将p`添加到C中end输出Celse 标记p 为噪声

2.3 python实现DBSCAN

code here

3. Clustering by fast search and find of density peaks算法

该算法是2014年的一篇science,链接在此。可以识别出各种形状,参数十分容易确定。

3.1 若干概念

  1. 局部密度\(\rho_i\): \[ \rho_i = \sum_j{\chi \left ( d_{ij} - d_c \right )},\chi \left ( x \right ) = \left\{\begin{matrix} 1,x< 0\ 0,otherwise \end{matrix}\right. \] 其中\(d_c\)是一个截断距离,\(\rho_i\)即为所有与对象i的距离小于\(d_c\)的对象的个数。由于该算法只对\(\rho_i\)的相对值敏感,所以对\(d_c\)的选择是稳健的,一种推荐做法就是选择\(d_c\)使得平均每一个点的邻居数为所有点的1%-2%。
  2. 高局部密度\(\delta_i\): \[ \delta_i = \min_{j:\rho_j>\rho_i}{\left ( d_{ij} \right )} \] 在密度高于对象i的所有对象中,到对象i最近的距离,即高局部密度点距离。 对于密度最大的对象,设置\(\delta_i = \max{\left( d_{ij} \right) }\)。 只有那些密度是局部或者全局最大的点才会有远大于正常值的高局部密度点距离。
  3. 簇中心: 那些有着比较大的局部密度\(\rho_i\)和很大的高密度\(\delta_i\)的点被认为是簇的中心;高密度距离\(\delta_i\)较大但局部密度\(\rho_i\)较小的点是异常点。 当确定簇中心之后,其他点按照距离已知簇的中心最近进行分类(按照密度可达的方法进行分类也可)。

3.2 聚类中的可靠性分析

在这里分析下每个点划分给某个簇的可靠性。首先针对每个簇定义一个边界区域,也就是划分给该簇但是距离其他簇的点的距离小于\(d_c\)的点的集合。然后为每个簇找到其边界区域的局部密度最大的点,令其局部密度为\(\rho_h\)。
该簇中所有局部密度大于\(\rho_h\)的点被认为是簇核心的一部分,就是划分给该簇的可靠性很大,其余点被认为是该类簇的光晕,也就是噪声。

3.3 python实现

code here

转载于:https://www.cnblogs.com/feitongxunke/p/20150915mi-du-ju-lei.html

20150915密度聚类相关推荐

  1. 密度聚类OPTICS算法

    密度聚类OPTICS算法 DBSCAN有一些缺点,如:参数的设定,比如说阈值和半径  这些参数对结果很敏感,还有就是该算法是全局密度的,假若数据集的密度变化很大时,可能识别不出某些簇. 核心距离:假定 ...

  2. 密度聚类算法DBSCAN实战及可视化分析

    密度聚类算法DBSCAN实战及可视化分析 目录 密度聚类算法DBSCAN实战及可视化分析 DBSCAN实战及聚类效果可视化 构建分类算法获得预测推理能力 DBSCAN实战及聚类效果可视化 DBSCAN ...

  3. R密度聚类之DBSCAN模型

    R密度聚类之DBSCAN模型 目录 R密度聚类之DBSCAN模型 密度聚类DBSCAN 模型构建及分析

  4. 密度聚类、密度聚类过程、OPTICS算法

    密度聚类.密度聚类过程.OPTICS算法 目录 密度聚类.密度聚类过程.OPTICS算法 密度聚类 密度聚类过程 OPTICS算法

  5. 密度聚类 DBSCAN python实现

    python代码例子参考另一篇博客: https://blog.csdn.net/jacke121/article/details/117736855 一.前言 二.DBSCAN聚类算法 三.参数选择 ...

  6. 密度聚类(Density peaks Clustering)Python实现

    密度聚类(Density peaks Clustering)Python实现 原文:http://blog.csdn.net/kryolith/article/details/39832573 Rod ...

  7. 两种三维点云密度聚类方法的研究与对比

    转载请说明出处: http://blog.csdn.net/zhubaohua_bupt/article/details/70194047 基于密度的点云聚类算法可以识别三维点云物体,也可以对三维点云 ...

  8. 【数据挖掘】基于密度的聚类方法 - DBSCAN 方法 ( K-Means 方法缺陷 | 基于密度聚类原理及概念 | ε-邻域 | 核心对象 | 直接密度可达 | 密度可达 | 密度连接 )

    文章目录 I . K-Means 算法在实际应用中的缺陷 II . K-Means 初始中心点选择不恰当 III . K-Means 优点 与 弊端 IV . 基于密度的聚类方法 V . 基于密度的聚 ...

  9. 【Python-ML】SKlearn库密度聚类DBSCAN模型

    # -*- coding: utf-8 -*- ''' Created on 2018年1月25日 @author: Jason.F @summary: 无监督聚类学习-基于密度 空间的聚类算法(De ...

最新文章

  1. 使用overlap-add方法计算两个信号的卷积示例(在频域计算卷积)
  2. SBO-COMMON库中查各个表的大小的SQL语句
  3. Red5 配置RTMPT
  4. java 多线程的基本概念_java基本教程之多线程基本概念 java多线程教程
  5. 日志分析工具ELK(一)
  6. 《天天数学》连载01:一月一日
  7. css 页面机械/数字电子 字体怎么实现?
  8. Netbean UML自动生成类图
  9. html调查问卷页面,html+js 问卷调查页面的展示以及form提交
  10. JSONP实现跨域(9种跨域方案)
  11. 双人对战的球类游戏ios源码
  12. 麒麟V10系统安装教程
  13. becon帧 wifi_构造并发送Beacon帧以伪造任意WiFi热点
  14. Unity IOS 微信SDK 记录
  15. Mouse_event()
  16. JSON与事件和BOM
  17. echarts图片的打印问题
  18. Linux操作系统~什么是虚拟地址?深度剖析进程地址空间
  19. 推荐5款让你相见恨晚的神级软件,把把直击心灵
  20. 离散数学--Chap14 图

热门文章

  1. 2013中国足球的温柔处罚
  2. php访问c#接口,介绍C#中的接口
  3. 打包vue项目时报错:Expected indentation of 6 spaces but found 10
  4. Software Defined Perimeter白皮书
  5. JavaWeb——jdbc与dbcp数据库连接
  6. xlwings,让excel飞起来!
  7. Android之Adobe AIR本地扩展
  8. Cocos2d-x windows + vs2010 配置图文详解
  9. linux c++ sqlite_SQLite 真的很容易编译 | Linux 中国
  10. b站测试岗怎么样_情商测试《大家一起察言观色》,一款适合作为B站测试题的游戏...