系统聚类法的基本思想:
一开始将n个样品各自自成一类,这时类间的距离与样品间的距离是等价的;然后将距离最近的两类合并,并计算新类与其他类的类间距离,再按最小距离并类。这样每次缩小一类,直到所有的样品都成一类为止。这个并类过程可以用谱系聚类图表达出来。
类平均法: 类平均法把类与类之间的距离定义为两类样品两两之间的平均平方距离。设某一步将Gp类和Gq类合并成Gr类,他们的样品个数分别为
,则Gr与其他类Gk的类间距离的递推公式为:
化简为:
具体是实现
import numpy as np
from matplotlib import pyplot as plt
from scipy.cluster.hierarchy import dendrogram,linkage
data=np.array([[190.33,43.77,9.73,60.54,49.01,9.04],
[135.2,36.4,10.47,44.16,36.49,3.94],
[95.21,22.83,9.3,22.44,22.81,2.8],
[104.78,25.11,6.4,9.89,18.17,3.25],
[128.41,27.63,8.94,12.58,23.99,3.27],
[145.68,32.83,17.79,27.29,39.09,3.47]
])
z=linkage(data,"average")
print(z)
#画图
fig,ax=plt.subplots(figsize=(8,8))#指定figure的长宽为8*8
dendrogram(z,leaf_font_size=14)#画树状图
plt.show()