单联聚类算法

时间:2021-04-20 13:25:40

标签: python arrays algorithm numpy loops

我正在尝试用 python 编写单链接聚类算法。我是这门语言的新手。你能帮我把下面的代码写成一个循环吗? 单点赞算法分为三步。

第一步:形成N个初始集群(每台机器 被认为是一个集群)。计算相似度 适用于所有机器对。

第 2 步:找到所有 i 和 j 机器(集群)对 具有最大的相似性。合并集群 i* 和 j*。如果仍然存在多个集群,请转到 第3步,否则停止。 步骤 3:更新系数:删除行 和来自相似性的列 i*, j* 系数矩阵。用行替换它们 和第 k 列。对于所有现有的集群 r, 计算新的相似度 Srk = 最大 (Sri * , Srj * )。转到第 2 步

enter code here

import numpy as np


n1=np.array([1  ,0  ,1  ,0 , 0  ,0  ,1])
n2=np.array([0  ,1  ,0  ,1  ,0  ,1  ,1])
n3=np.array([0  ,1  ,0  ,1  ,0  ,1  ,0])
n4=np.array([1  ,0  ,1  ,0  ,0  ,0  ,1])
n5=np.array([1  ,1  ,0  ,0  ,1  ,1  ,0])

n=0
for i in range(len(n1)):
    if n1[i]==1:
        n+=1
    
print("n1:",n)

n=0
for i in range(len(n2)):
    if n2[i]==1:
        n+=1
    
print("n2:",n)

n=0
for i in range(len(n3)):
    if n3[i]==1:
        n+=1
    
print("n3:",n)

n=0
for i in range(len(n4)):
    if n4[i]==1:
        n+=1
    
print("n4:",n)
n=0
for i in range(len(n5)):
    if n5[i]==1:
        n+=1
    
print("n5:",n)

matrix=np.array([[1 ,0  ,1  ,0 , 0  ,0  ,1],
                 [0 ,1  ,0  ,1  ,0  ,1  ,1],
                 [0 ,1  ,0  ,1  ,0  ,1  ,0],
                 [1 ,0  ,1  ,0  ,0  ,0  ,1],
                 [1 ,1  ,0  ,0  ,1  ,1  ,0]])  

0 个答案:

没有答案
相关问题