zoukankan      html  css  js  c++  java
  • DBSCAN算法

    简单的说就是根据一个根据对象的密度不断扩展的过程的算法。一个对象O的密度可以用靠近O的对象数来判断。学习DBSCAN算法,需要弄清楚几个概念: 

    一:基本概念

    1.:对象O的是与O为中心,为半径的空间,参数,是用户指定每个对象的领域半径值。

    2.MinPts(领域密度阀值):对象的的对象数量。

    3.核心对象:如果对象O的对象数量至少包含MinPts个对象,则该对象是核心对象。

    4.直接密度可达:如果对象p在核心对象q的内,则p是从q直接密度可达的。

    5.密度可达:在DBSCAN中,p是从q(核心对象)密度可达的,如果存在对象链,使得,从关于和MinPts直接密度可达的,即

    内,则密度可达。

    6.密度相连:如果存在对象,使得对象都是从q关于和MinPts密度可达的,则称是关于和MinPts密度相连的。

    二:密度可达和密度相连

    图1基于密度的聚类中的密度可达和密度相连性

    由上图可看出m,p,o.r 都是核心对象,因为他们的内都只是包含3个对象。

    1.对象q是从m直接密度可达的。对象m从p直接密度可达的。

    2.对象q是从p(间接)密度可达的,因为q从m直接密度可达,m从p直接密度可达。

    3.r和s是从o密度可达的,而o是从r密度可达的,所有o,r和s都是密度相连的。

    三:DBSCAN聚类过程

     1.DBSCAN发现簇的过程

           初始,给定数据集D中所有对象都被标记为“unvisited”,DBSCAN随机选择一个未访问的对象p,标记p为“visited”,并检查p的是否至少包含MinPts个对象。如果不是,则p被标记为噪声点。否则为p创建一个新的簇C,并且把p的中所有对象都放在候选集合N中。DBSCAN迭代地把N中不属于其他簇的对象添加到C中。在此过程中,对应N中标记为“unvisited”的对象,DBSCAN把它标记为“visited”,并且检查它的,如果至少包含MinPts个对象,则中的对象都被添加到N中。DBSCAN继续添加对象到C,直到C不能扩展,即直到N为空。此时簇C完成生成,输出。

         为了找到下一个簇,DBSCAN从剩下的对象中随机选择一个未访问过的对象。聚类过程继续,直到所有对象都被访问。

    2.DBSCAN聚类算法流程

     

  • 相关阅读:
    [导入]微软轻量级“代码生成器”—Repository Factory使用(上)
    数据结构练习(41)数组中三个只出现一次的数字
    数据结构练习(43)字符串的组合
    数据结构练习(37)复杂链表的复制
    数据结构练习(36)二叉树两结点的最低共同父结点
    数据结构练习(34)对称子字符串的最大长度
    数据结构练习(38)树的子结构
    数据结构练习(39)二叉树前中后序遍历的非递归实现
    数据结构练习(42)八皇后问题
    数据结构练习(35)数组中出现次数超过一半的数字
  • 原文地址:https://www.cnblogs.com/aijianiula/p/4339960.html
Copyright © 2011-2022 走看看