我想计算1轮K均值。
我有k个中心,我只想知道输入的每个点谁最接近它。
另外,我想知道平方距离之和(K均值的成本)。在
代码如下:
points = sc.textFile("s3_url",20).map(parseVector).cache()
closest = points.map(lambda p: (distanceToClosest(p, means)))
cost = closest.reduce(lambda a, b: a+b)
means
变量是硬连接的。在
其中parseVector
是这样的:
最接近的距离是:
def distanceToClosest(p, centers):
closest = float("+inf")
for i in range(len(centers)):
tempDist = np.sum((p - centers[i]) ** 2)
if tempDist < closest:
closest = tempDist
return closest
我的输入只有5GB,我使用10个核心,而且这个简单的操作需要10分钟以上!当我期待1分钟
目前没有回答
相关问题 更多 >
编程相关推荐