与python numpy的火花是s

2024-09-26 17:54:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想计算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是这样的:

^{pr2}$

最接近的距离是:

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分钟


Tags: lambda代码距离map中心pointsmeans均值

热门问题