聚类是一种非监督式学习算法,它不要求源数据集有标签,一般应用于做数据探索性分析,聚类算法的结果是将不同的数据集按照各自的典型特征分成不同类别,不同人对聚类的结果解读可能不同。
总体上来说,聚类算法分为层次聚类(Hierachical Methods)和划分聚类(Partitioning Methods)。
一、层次聚类
层次聚类不需要指定类数,按策略不同可分为自底向上的聚类方法(agglomerative hierarchical clustering),比如AGNES和自上向下的聚类方法(divisive hierarchical clustering),比如DIANA。
1、自底向上的聚类方法
算法思想:
将每个点都看成一个簇;
将两个最近的簇合并为一个簇;
不断重复上述过程,直到达到预期簇或簇之间的距离满足要求为止。
2、自上向下的聚类方法
算法思想:
将样本的每个点都看成一个簇;
然后找出簇中距离最远的两个簇进行分裂;
不断重复到预期簇或者满足终止条件为止。
如何判断两个簇之间的距离
有三种不同的计算形式:
①、单链接聚类:
一个簇的所有成员到另一个簇的所有成员之间的最短两点之间的距离。
②、全连接聚类:
两个簇中最远的两个点之间的距离。
③、平均连接聚类:
两个簇中的点两两距离求平均值。