基于层次的聚类
做法是将每个对象都看做一个类,计算两两之间距离最小的对象归为一类,然后重复这样的操作直至成为一个类,这种方式是采用贪心的方法,一步错步步错,时间复杂度过高,可解释性比较好
基于划分的聚类(k-Means)
原则是保证簇内的数据距离尽可能小,簇间的距离尽可能大,做法是确定需要划分的k的类别数,然后选择初始点,计算所有点到这些点的距离,将距离最近的点划为一簇,然后计算每一簇的平均值当做新的中心点,重复这样的过程直至最后收敛,优点在于时间空间复杂度都不高,但是对于k比较敏感,容易陷入局部最优解
- 基于密度的聚类(DBSCAN)
k-means聚类解决不了不规则形状的聚类,而基于密度的聚类可以解决,并对于噪声点比较有效,能发现任意形状的聚类,但是聚类的结果和参数关系很大
- 基于网络的聚类
原理是将数据空间划分成网格,计算每个网格中的数据密度,将相邻的高密度网格划为一簇,优点就是划分速度很快,因为是按照网格划分的,和数据点个数没有关系,所以对数据个数不敏感,但是却是以牺牲精度作为代价来实现的
- 基于模型的聚类 (SOM)
原理是为每一簇拟定一个概率模型,主要是基于概率模型和神经网络模型的方法,假定随机选择的数据服从某种分布,找到获胜单元,然后调整获胜单元周围的向量向其靠拢,最后形成簇,优点是分成簇没有那么硬,分类比较柔和,是以概率的形式表示的,缺点是执行效率不高,当数据较多较复杂时很慢
- 基于模糊的聚类(FCM)
原理来自于模糊集合论,使用隶属度来确定每个数据属于哪一类的,不断迭代隶属矩阵直至收敛来确定类别,算法对满足正态分布的数据具有很好的效果,缺点是算法的性能依赖于初始簇心,不能保证收敛于一个最优解



