聚类是一个把数据对象集划分成多个组或者簇的过程,使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似.聚类是无监督学习,不依赖于预定义的类和类标号的训练实例。我们常见的聚类算法分为以下几类:划分方法、层次方法、基于密度的方法和基于网格的方法。
1、划分方法
给定n个对象的集合,划分方法构建数据的k个划分,每个划分表示一个簇,k<=n。也就是说,划分方法将数据分为k个组,每个组至少包含一个对象。
大部分的划分方法是基于距离的,但是这只能发现球状簇。。它采用一种迭代的重定位技术,通过将对象从一个组移动到另一个组来改进划分结果。一个好的划分方法的一般准则是:同一个簇内的对象尽可能相互接近或相关,而不同簇的对象尽可能远离或者不同。
常见的基于划分的算法有:K-均值算法和K-中心点算法。
2、层次方法
层次方法创建给定数据对象集的层次分解。分为凝聚的方法和分裂的方法两种。凝聚的方法,也称自底向上的方法,开始将每个对象看作单独的一组,然后逐次向上合并相近的对象或者分组,直到所有的组合并为一个大组,或者满足终止条件。分裂的方法,也成为自顶向下的方法,开始将所有对象看作一个簇,然后在每次迭代中一个簇被划分为更小的簇,直到每个对象在一个