数学模型 机器学习 系统聚类(system clustering) Python实现

初始有m个数据, 那么系统聚类一开始就有m个类, 再根据类之间的距离函数, 将最近的类聚集在一起, 直到用户设定的K

a=[[1,0],
   [1,1],
   [3,2],
   [4,3],
   [2,5]]
cluster=[]
for i in range(shape(a)[0]):
    cluster.append([i])
a=array(a)
centers=a.copy()
centers=centers.astype('float')
m,n=shape(a)
我们给出一个简单的例子, 只有5条数据

我依次演示这个聚类过程

for k in range(m-1):#m
    d=zeros((m-k,m-k))
    for i in range(m-k):
        for j in range(i+1,m-k):
            d[i,j]=mandist(centers[i],centers[j])
    nzInd=nonzero(d)                               #take care of it
    minInd=d[nzInd].argmin(0)
    mA=nzInd[0][minInd]
    mB=nzInd[1][minInd]
    cluster[mA].extend(cluster[mB])
    cluster.remove(cluster[mB])
    print cluster
    for i in range(m-k-1):
                                                  #cluster distance: core method
        centers[i]=mean(a[cluster[i]],
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值