聚类(Cluster) 是无监督学习的一种,与分类相区别的地方在于:
1. 分类的目的在于将数据进行明确的归属划分,聚类 的目的只是使同一类对象的相似度尽可能大;
2. 聚类 作为非监督学习,不需要训练和学习过程;
目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法和用于高维度的聚类算法。
K-Means算法
K-Means可以说是聚类算法中最简单、也是应用最多的方法,关键点有两个:
1)中心用各类别中所有数据的均值表示;
2)通过迭代算法进行数据更新;
K-Means算法 结果好坏依赖于对初始聚类中心的选择、容易陷入局部最优解、对K值的选择没有准则可依循、对异常数据较为敏感。
基于此,在K-Means的基础上诞生了许多变体算法,比如Bradley和Fayyad等,主要改进点在于 降低对中心的依赖,调整迭代过程中重新计算中心方法 等。
层次聚类
层次聚类的基本步骤:
1、初始化过程,将每个样本作为一类;
计算类间距离D,即样本与样本之间的相似度
给定阈值T,当相似度小于T时,可以合并
2、寻找各个类之间最近的两个类,如果距离小于T,执行合并;
3、计算新合并的这个类 与 原有类之间的相似度;
4、重复2和3直到 没有可以合并的类,结束。