2.2.1 划分方法
给定一个具有 个变量的数据集,利用划分法将数据分成K个分组,其中满足 。对于给定的k,算法首先给出一个原始的划分方法,之后通过反复迭代方法改变划分,使得每一次改进之后的划分方案都比前一次好。划分聚类中比较流行的算法有k-means算法、k-medoids算法、CLARANS算法。K-means算法的分析在下章节中详尽的讲解。
2.2.2 层次方法
层次分解可以分为自底向上和自顶向下两个方向。典型算法有BIRCH算法和CURE算法。层次聚类的缺陷表现在聚类过程要按照先前的规则分类,层次方法对孤立点和噪声敏感。
Birch算法:该算法使用了特殊的CF-树(Clustering Feature Tree)分层结构,对数据进行聚类。CF-树是一个加权平衡树,它包含了层次方法中的聚类特征信息,CF-树存储于一个聚类特征树里。特征数有两个参数,即每个节点的包含最大的子节点数和子聚类的范围。有数据运行时,程序自动构建树结构,把数据加到聚类中。Birch算法不能很好的运算大型数据集,因此需通过构建初始聚类树来对数据进行预聚类,再采取其他的聚类算法对数据聚类。该算法对输入数据的顺序很敏感,并且算法的效率高。
Cure算法:算法选择基于质心和基于代表对象方法之间的中间策略。该算法使用多个代表点来定义一个类,这些代表点能够描述类的形状和大小,一旦确定了代表点,他们就向类中心收缩,因此,该算法能够识别非球形状的类。
2.2.3 基于密度的方法
基于密度的聚类方法是以球形聚类的,此方法可用来处理孤立点数据。此方法中,只要临近区域的数据数目大过某个值,就把他加到相近的聚类里去,每个给定的区域必须有一组数据。典型的算法有DBSCAN算法、OPTICS算法和CLIQUE算法等。
DBSCAN算法:是一种典型基于密度的聚类方法。
DBSCAN(D, Eps, MinPts)
Begin
init C=0;
for each unvisited point p in D
mark p as visited;