我需要帮助来解决这个挑战,我尝试用不同的方法来做到这一点,但最后几个测试用例给了我错误。这是一个 Sololearn 挑战。他们允许我寻求帮助。
任务:
<块引用>假设给定的簇中有两个簇 二维数据点和两个随机点 (0, 0) 和 (2, 2) 是初始聚类质心。计算欧氏距离 在每个数据点和每个质心之间,分配每个数据 指向它最近的质心,然后计算新的质心。如果 有一个平局,将数据点分配给质心为 (0, 0)。如果没有数据点分配给给定的质心,则返回 None。
输入格式:
<块引用>第一行:一个整数,表示 数据点数 (n) 接下来的 n 行:每行两个数值 线表示二维空间中的数据点。
输出格式
<块引用>两个质心的两个列表。数字四舍五入到小数点后第二位 地点。
样本输入:
3
1 0
0 .5
4 0
样本输出:
[0.5 0.25]
[4. 0.]
n = int(input())
X = []
for i in range(n):
X.append([float(x) for x in input().split()])
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
import numpy as np
from sklearn.metrics.pairwise import euclidean_distances
scale = StandardScaler()
scale.fit(X)
X_scaled = scale.transform(X)
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
s=(kmeans.cluster_centers_)
for a in s:
print(np.around(a,2))
答案 0 :(得分:0)
根据勾股定理使用这个公式:
例如
import math
x1 = 1
y1 = 3
x2 = 6
y2 = 8
a = x2 - x1 #get length "a" of triangle rectangle
b = y2 - y1 #get length "b" of triangle rectangle
c = math.sqrt((a**2) + (b**2)) #distance between two 2D coordinates/hypotenuse
易于理解,而且快速简单。