模式识别层次聚类

聚类顺序为(x2,x4),(x2,x3,x4),(x2,x3,x4,x5),(x1,x2,x3,x4,x5),样本距离计算选择single linkage ,和图聚类顺序一致。

图片[1]-模式识别层次聚类-开心之家
x1x2x3x4x5
x1026242523
x226012325
x324120715
x42537024
x5232515240
初始
x1(x2,x4)x3x5
x10252423
(x2,x4)250724
x3247015
x52324150
第一次凝聚
x1(x2,x3,x4)x5
x102423
(x2,x3,x4)24015
x523150
第二次凝聚
x1(x2,x3,x4,x5)
x1023
(x2,x3,x4,x5)230
第三次凝聚
import numpy as np
from scipy.cluster.hierarchy import dendrogram,linkage
from matplotlib import pyplot as plt
import math
x1=[0,1,3,1,3,4]
x2=[0,0,1,0,1,0]
x3=[2,1,0,2,2,1]
x4=[1,0,0,0,1,1]
x5=[3,3,3,1,2,1]
data=[x1,x2,x3,x4,x5]

data=np.array(data)
reslut=linkage(data,method='single')
dendrogram(reslut)
plt.show()

def juli(a: list, b: list)  -> int:
    al=len(a)
    bl=len(b)
    jl=0
    for i in range(al):
        jl+=math.pow(abs(a[i]-b[i]),2)
    return jl

for i in range(len(data)):
    for j in range(len(data)):
        print("x%d-x%d的距离为%d"%(i+1,j+1,juli(data[i],data[j])))
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容