简单的说就是根据一个根据对象的密度不断扩展的过程的算法。一个对象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聚类算法流程