更新k均值Python中的质心

时间:2019-04-14 03:10:21

标签: python-3.x numpy k-means

我正在python中实现K均值算法,但我陷入了困境  我们假设要更新质心的部分。 我创建了一些可以正常工作的东西,但实际上却不是python样的。 我知道它可以写得更好,希望能提出一些建议 例如如何改善统计多少点的直方图 分配给每个质心。

这是我的代码:

def updateCentroids(centroids, pixelList):
    k = len(centroids)
    centoidsCount = [0]*k #couts how many pixels classified for each cent.
    centroidsSum = np.zeros([k, 3])#sum value of centroids
    for pixel in pixelList:
        index = 0
        #find whitch centroid equals
        for centroid in centroids:
            if np.array_equal(pixel.classification, centroid):
                centoidsCount[index] += 1
                centroidsSum[index] += pixel.point
                break
            index += 1
    index = 0
    for centroid in centroidsSum:
        centroids[index] = centroid/centoidsCount[index]
        index += 1

0 个答案:

没有答案