【发布时间】:2021-03-30 11:07:18
【问题描述】:
我需要帮助来应对这个挑战,我尝试使用不同的方法来做到这一点,但最后几个测试用例给了我错误。这是一个单人学习挑战。他们允许我寻求帮助。
任务:
假设给定的簇中有两个簇 二维数据点和两个随机点 (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))
【问题讨论】:
-
请将您的问题减少到您需要帮助的相关部分。您的代码的哪一部分没有产生您想要的结果,而您得到的是哪个结果?
-
这也是我不理解的部分,因为我总是得到错误答案的最后几个测试用例被锁定,我无法查看它们。但是,如果我不得不猜测,我想我需要帮助来确定数据点是已分配还是平局。
标签: python cluster-analysis distance knn