层次聚类(Hierarchical methods)
主要思想:
试图在不同层次上对数据集进行划分,从而形成树形的聚类结构。数据集的划分可以采用“自底向上”的聚合策略,开始将每个对象作为单独的一个组,然后逐次合并相近的对象或组,直到所有的组合并为一个组,或者满足某个终止条件;也可采用“自顶向下”的分拆策略,开始将所有的对象置于一个簇中。在每次相继迭代中,每个簇被划分成更小的簇,直到最终每个对象在单独的一个簇中,或者满足某个终止条件。
图7 层次聚类之AGNES
1)优点: 适用于任意形状和任意属性的数据集;灵活控制不同层次的聚类粒度,强聚类能力。
2)缺点: 大大延长了算法的执行时间,不能回溯处理。
划分聚类(Partition-based methods)
主要思想:
给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。
图8 划分聚类之K-Means
1)优点:应用最为广泛;收敛速度快;能扩展以用于大规模的数据集。
2) 缺点:倾向于识别凸形分布、大小相近、密度相近的聚类;中心选择和噪声聚类对结果影响大。
密度聚类(Density-based methods)
主要思想:
大部分划分方法基于对象之间的距离进行聚类。这样的方法只能发现球状簇,儿砸发现任意形状的簇时遇到了困难。基于密度的聚类方法 假设聚类结构能通过样本分布的紧密程度确定,其主要思想是:只要“邻域”中的密度(对象或数据点的数目)超过某个阈值,就继续增长给定的簇。通常情况下,密度聚类算法从样本的角度来考察样本间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
图9 密度聚类之DBSCAN(Java版)
1)优点: 可以识别出“凹”型聚类
2)缺点: 在样本数据较少时,不能得出相对正确的结论。
网格聚类(Grid-based methods)
主要思想:
基于网格的方法,首先将数据空间划分成为有限个cell,所有的处理都是以单个的单元为对象的。这种方法的主要优点是处理速度很快,其处理时间通常独立于数据对象的个数,而仅依赖于量化空间中每一维的单元数。
1)优点:处理时间与数据对象的数目无关,与数据的输入顺序无关,可以处理任意类型的数据
2)缺点:处理时间与每维空间所划分的单元数相关,一定程度上降低了聚类的质量和准确性
图10 网格聚类之CLIQUE
模型聚类(Model-based methods
主要思想:
基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。