1. 空间数据对空间聚类算法的要求
1) 空间拓扑关系
2) 密度问题
3) 空间簇形态多样性
2. 空间聚类算法分析
1) 基于划分的算法
i. K-means算法
优点:处理大型数据有较高效率和伸缩性
缺点:
a) 初始点敏感
b) 只能发现近似球状簇
c) 对噪点敏感
d) 只能处理数值型数据
ii. K-mediods算法:克服K-means算法对噪点的敏感性
PAM是K-mediods算法之一
CLARA基于K-mediods
CLARANS基于K-mediods
iii. K-modes算法:克服K-means不能对分类数据进行聚类的局限性
iv. ISODATA算法:K-means的重要扩展,获得高质量聚类
v. FCM(fuzzy-c-means):模糊C均值聚类算法
2) 基于层次的算法
i. 经典的层次聚类算法
优点:执行简单
缺点:
a) 聚类操作不可恢复,受噪点影响
b) 聚类终止条件难以确定
c) 聚类开销大
ii. BIRCH(balanced iterative reducing and clustering using hierarchies)算法:改进的算法
优点:适应大型数据库
缺点:
a) 主要识别球型空间簇
b) 需要先验知识
c) 受数据输入次序影响
iii. CURE(clustering using representative)算法
优点:
a) 发现复杂空间簇
b) 受早点影响小
缺点:
a) 实际复杂
b) 抽样有误差
c) 难以发现形状非常复杂的空间簇,对空间数据密度差异敏感
iv. CHAMLELON算法
优点:发现任意形状簇和密度不同的簇
缺点:
a) 依赖子图划分
b) 参数选择缺乏普遍性
c) 密度有渐变时误差大
v. AMOEBA算法:借助Delaunay三角网描述空间实体间的邻近关系
优点:发现不同密度、大小、形状的空间簇
缺点:链式问题、颈问题
vi. 尺度空间算法
vii. MSCMO算法
3) 基于密度的算法
i. DBSCAN(density-based spatial clustering of application with noise)算法
优点:发现任意形状的空间簇、识别孤立点
缺点:
a) 全局参数难以设定
b) 难以识别空间簇相互邻接(颈问题)情况下的空间聚类操作
GDBSCAN算法
DBRS算法
ST-DBSCAN算法
ii. OPTICS(ordering points to identify the clustering structure)算法:克服DBSCAN算法设置的全局参数难以适应空间数据分布不均匀情况下聚类操作的局限
缺点:空间簇相互邻接的情况仍旧难以解决
iii. DENCLUE(density based clustering)算法:基于核密度与核密度估计的空间聚类算法,基本思想是采用一个数学函数来表达一个空间实体对其淋雨内其他实体的影响,每个实体的密度定义为一定范围内实体影响函数之和。
优点:比DBSCAN聚类的质量高
缺点:同DBCSAN
iv. SNN算法:基于共享最临近密度的空间聚类算法,采用共享最邻近密度代替传统密度定义,再用DBSCAN
优点:更好地适应空间实体密度差异
缺点:聚类结果过分依赖参数设置,可能会分裂真正的簇
4) 基于图论的算法
i. MST算法:基于最小生成树的聚类算法
优点:可以进行复杂空间聚类操作
缺点:不稳健
ii. AAUTOCLUST算法:基于Delaunay三角网
优点:效率高,发现任意形状、不同密度的空间簇,解决多链问题
缺点:对空间簇内部密度变异过于敏感
iii. 2-MSTClus算法:基于二轮最小生成树的聚类算法
优点:比MST稳健
缺点:
a) 对噪声敏感
b) 多个参数输入,需要先验知识
c) 没有考虑多个簇接触问题
5) 基于模型的算法
i. EM(expectation-maximization)算法
ii. SOM(self-organizing feature map)算法
6) 基于格网的算法
i. STING(statistical information grid)算法
ii. WaveCluster(cluster using wavelet transformation )算法
7) 混合算法
i. NN-Density算法
ii. CSM(cohesion-based self merging)算法