系统聚类(层次聚类)的原理及其python实现

系统聚类是将每个样品分成若干类的方法,其基本思想是:先将各个样品各看成一类,然后规定类与类之间的距离,选择距离最小的一对合并成新的一类,计算新类与其他类之间的距离,再将距离最近的两类合并,这样每次减少一类,直至所有的样品合为一类为止。

算法:

第一步:设初始模式样本共有N个,每个样本自成一类,即建立N类,G1(0),G2(0)…GN(0)。计算各类之间的距离(初始时即为各样本间的距离),得到一个N*N维的距离矩阵D(0)。这里,标号(0)表示聚类开始运算前的状态。

第二步:假设前一步聚类运算中已求得距离矩阵D(n),n为逐次聚类合并的次数,则求D(n)中的最小元素。如果它是Gi(n)和Gj(n)两类之间的距离,则将Gi(n)和Gj(n)两类合并为一类Gij(n+1),由此建立新的分类:G1(n+1),G2(n+1),…。

第三步:计算合并后新类别之间的距离,得D(n+1)
计算Dij(n+1)与其它没有发生合并的G1(n+1),G2(n+1),…之间的距离,可采用多种不同的距离计算准则进行计算。

第四步:返回第二步,重复计算及合并,直到得到满意的分类结果。(如:达到所需的聚类数目,或D(n)中的最小分量超过给定阈值D等。)

聚类准则函数

聚类准则函数主要有:最短距离法、最长距离法、中间距离法、重心法、类平均距离法,其原理如下:
系统聚类(层次聚类)的原理及其python实现
系统聚类(层次聚类)的原理及其python实现
系统聚类(层次聚类)的原理及其python实现
系统聚类(层次聚类)的原理及其python实现
系统聚类(层次聚类)的原理及其python实现
python代码实现为本人原创,代码运行结果
系统聚类(层次聚类)的原理及其python实现
点击获取源码和测试数据