天天看点

聚类 簇间距离(python实现)

可以直接用

np.linalg.norm 中的二类范式计算距离

比如data为所有数据点,idx为当前簇的索引,c为簇的位置,c为所有簇的集合,labels为所有数据点所在的簇

for i, c in enumerate(centroids):       #
        idx = np.where(labels == i)[0]      #idx为属于该簇的所有数据点
        dist = np.linalg.norm(data[idx] - c, axis=1).sum()      #norm为求范数
        cluster_distance += cluster_distance
        error += dist
error /= (len(centroids)*len(idx))		#erorr为簇间距离
           

上面就是计算簇间距离的公式。