我的数组由3个向量组成,代表3个对象
X2=array([[ 5.43840675, -1.05259078, -0.21793506, 8.56686818, -2.58056957,
-0.07310339, -0.31181501, 0.02696586],
[ 5.72318296, -0.99665473, -0.14540062, 8.32051008, -3.36201189,
-0.04897565, -0.34271698, -0.0339766 ],
[ 5.93081714, -1.52272427, 0.40706477, 8.56256569, -3.216366 ,
-0.0108426 , -0.57434619, -0.18952662]])
model1 = KMedoids(n_clusters=2, random_state=0).fit(X2)
它们的簇标签是[1,0,0]
水母是
medoids=array([[ 5.72318296, -0.99665473, -0.14540062, 8.32051008, -3.36201189,
-0.04897565, -0.34271698, -0.0339766 ],
[ 5.43840675, -1.05259078, -0.21793506, 8.56686818, -2.58056957,
-0.07310339, -0.31181501, 0.02696586]])
我想计算(X2)中每个对象与每个簇(0,1)的距离,例如,对象[1]与簇(0)的距离
X2[1]=([ 5.72318296, -0.99665473, -0.14540062, 8.32051008, -3.36201189,
-0.04897565, -0.34271698, -0.0339766 ])
medoids[0]=[ 5.72318296, -0.99665473, -0.14540062, 8.32051008, -3.36201189,
-0.04897565, -0.34271698, -0.0339766 ]
距离(a)应为零,因为它们之间没有差异
a=euclidean_distances(X2[1].reshape(-1, 1), X2[model1.medoid_indices_][0].reshape(-1, 1))
你知道会有什么问题吗
欧几里德距离函数正在按预期工作,因为它正在计算两个数组中每个项之间的距离。在这方面,欧几里德距离矩阵是对称的
这就是你会看到的:
相关问题 更多 >
编程相关推荐