1、聚类方法:基于密度的方法组员:窦有花、张钦洋、王小龙、白艳梅、古文杰基于密度的方法 基于密度的算法是为了能够发现任意形状的的簇而提出的,它的主要思想是:只要 “邻域 ”中的密度超过某个值,就继续聚类。也就是说,对给定的簇中的每个数据点,在给定半径的邻域内必须至少包含最少数目的点,这样密度聚类方法就可用于过滤 “噪声 ”孤立点数据,发现任意形状的簇。它主要有三种算法: DBSCAN算法、OPTICS算法和 DENCLUE算法。密度算法的特点 主要特点 :发现任意形状的聚类处理噪音一遍扫描需要密度参数作为终止条件 一些有趣的研究 :DBSCAN: Ester, et al. (KDD96)OPTI
2、CS: Ankerst, et al (SIGMOD99).DENCLUE: Hinneburg & D. Keim (KDD98)密度算法的一些概念 密度: 空间中任意一点的密度是以该点为圆心、以为 半径的圆区域内包含的点数目 核心对象 (Core object): 一个对象的 邻域至少包含最小数目 MinPts个对象 直接密度可达: 点 p从点 q 直接密度可达,若它们满足: ( 1) p处于 q的邻域中; ( 2) q是核心点; 密度可达:若存在一个对象链( p1, ., pn),其中p1=p, pn=q,且有 pi从 pi+1直接密度可达,则对象 p是从对象 q密度可达。 密度相连的
3、(density-connected): 如果对象集合 D中存在一个对象 o, 使得对象 p和 q是从 o关于 和 MinPts密度可达的,那么对象 p和 q是关于 和 MinPts密度相连的密度算法的一些概念边界点 :( Border Points)空间中某一点的密度,如果小于某一给定阈值 MinPts,则称该为边界点。 密度可达: 若存在一个对象链( p1, p2, ., pn),其中 p1=p, pn=q,且有 pi从 pi+1直接密度可达,则对象 p是从对象 q密度可达。密度可达是直接密度可达的传递闭包,是非对称的。只有核心对象之间相互密度可达。 基于密度的聚类 : 背景 I 两个参数
4、 : : 邻域的最大半径 MinPts: 在 Eps-邻域中的最少点数 NEps(p):q belongs to D | dist(p,q) = MinPts pqMinPts = 5Eps = 1 cm基于密度的聚类 : 背景 II 密度可达 : 点 p 关于 , MinPts 是从 q密度可达的 , 如果 存在一个节点链 p1, , pn, p1 = q, pn = p 使得 pi+1 是从 pi直接密度可达的 密度相连的 : 点 p关于 , MinPts 与点 q是密度相连的 , 如果 存在点 o 使得 , p 和 q 都是关于 , MinPts 是从 o 密度可达的pq p1p qoD
5、BSCAN(1996) DBSCAN(Density Based Spatial Clustering of Applications with Noise) 一个基于高密度的连结区域的基于密度的聚类算法 可以在带有 “噪音 ”的空间数据库中发现任意形状的聚类 核心对象边界点游离点 = 1cmMinPts = 5DBSCAN算法的设计实现 对于某一次聚类, DBSCAN 算法可以从此类中的任意一个点开始,这对于聚类结果是没有任何影响的。算法中要强调的是,只有某点的密度达到了 MinPts,此点才是一个核心点。只有核心点才可以将周围的点聚成一个类。所以算法主要分两个步骤,一是逐一将数据库中的二维
6、数据读入内存,并构造成一个特定的数据结构。这个数据结构应该能够使我们很容易地知道某个点是不是核心点,从而知道它有没有资格进行类地扩展;它也应该容易地让我们知道某个点的邻域内有那些点,从而不必要浪费时间再进行重复地操作。二是聚类在该数据结构上的实施,它主要就是严格按照 DBSCAN 算法模型进行操作,在算法完成过程中,记录下每一个数据点的类的 id。其中的流程主要是递归方法。DBSCAN算法的设计实现 算法 任意选取一个点 p 得到所有从 p 关于 和 MinPts密度可达的点 . 如果 p 是一个核心点 , 则找到一个聚类 . 如果 p 是一个边界点 , 没有从 p 密度可达的点 , DBSCAN 将访问数据库中的下一个点 . 继续这一过程 , 直到数据库中的所有点都被处理 .