空间数据聚类算法主要包括四大类:(1)给予划分的聚类;(2)基于层次的聚类;(3)基于密度的聚类;(4)基于网格的聚类。时空数据聚类算法是空间数据聚类算法的验身,它将时许维度纳入聚类计算中。
1.1基于划分的空间聚类算法
k-means算法:用户定义k个簇的质心位置——将每个数据点聚合到与之最近的质心所在的簇——重新为每个簇计算质心所在位置——重复步骤二和三直到质心收敛。其计算复杂度为,T为步骤四中迭代次数,他对于用户给定的簇中心点的初始位置和噪声点非常敏感。同时,在处理海量数据的时候运行时间较长。
1.2基于层次的空间聚类算法
层次聚的目的是将数据对象分配到一个层次结构中,它遵循两种剧本策略:向上凝聚和向下分裂。向上凝聚方法将每一个对象看做独立的簇,然后从整个层次结构的底层开始对具有相似特征的簇聚合,逐层递归至顶层。相反,向下分裂方法把所有的数据对象看做同一个簇,然后从整个层次结构的顶层开始,对具有不同特征的簇进行分裂,逐层递归至底层。其计算的事件复杂度是
1.3基于密度的空间聚类算法
基于密度的聚类算法在发现任意形状和数据造成方面具有独特的优势,且不要求对簇的数量进行初始设置。其算法包括:DBSCAN算法,OPTICS算法,DENCLUE算法,CURD算法,Incremental DBSCAN算法,SDBDC算法,ST-DBSCAN算法等。DBSCAN是第一个被提出的基于密度的聚类算法。而密度主要通过两个基本参数进行定义:空间半径和密度阈值MinPts.
DBSCAN基本概念:
算法的主要缺点是它的运算时间复,因此对海量空间数据的聚类过程需要经过一个无法忍受的耗时。它的另一个缺陷是无法支持多密度聚类、增量聚类和并行计算。许多工作针对这些问题进行了研究他们可以被概括为两大类工作:⑴算法改进;(2)算法并行化。传统的改进方法采用空间索引技术来快速锁定数据对象。GirDBSCAN被称为最先进的DBSCAN算法它基于网格划分策略极大的减低了算法的时间复杂度,且没有计算精度损失。得益于网格的超规则空间结构,任意两个格子之间的最短空间距离可以很容易被获取。对于任意点,其关于的近邻点只存在于一个固定的格子集合范围内;换言之,那些格子集合范围外的点一定不是其的近邻点,因此这些点与点之间的距离计算可以被省略,从而提高DBSCAN算法的计算效率。基于这个想法,Gunawan将整个网格划分为以为边长的正方形格子,用于2维空间数据的基于密度聚类计算,使得每个正方格子内的最大空间距离为因此一旦格子内的点的数量达到或超过MinPts,则该格子里的所有点都是核心点,且属于同一个簇。因此一个簇可以通过密度相连格子和密度可达格子的最大集合进行计算,从而省略了许多点与点之间的距离计算。同时采用了Voronoi图技术,进一步改进了DBSCAN算法的运算效率。但是,构建一个Voronoi图本身需要消耗大量的时间。基于这个想法,Gan和Tao提出了一种关于p近似DBSCAN算法来获得近似精度的计算结果,但只需要关于N的线性计算时间,用于取代传统的DBSCAN算法。
1.4基于网格的聚类
基于网格聚类算法将数据空间划分为规则的互不相交的格子,再将所有的数据对象映射带网格中基于格子进行聚类。总结一下就是:将对象空间量化为有限数目的单元,形成一个网状结构,所有聚类都在这个网状结构上进行。
我们将学习一下STING算法以及CLIQUE算法。