Beispiel #1
0
def runkMeans(X,initial_centroids,max_iters,plot_progress=None):
    if plot_progress == None :
        plot_progress=False
    
    #if plot_progress:
    shape=X.shape
    m=shape[0]
    K=initial_centroids.shape[0]
    centroids=initial_centroids
    previous_centroids=centroids
    idx=np.zeros((m,1))
    
    
    for i in range(max_iters):
        print 'K-Means iteration: %d %d' % (i,max_iters)
        idx=FCC.findClosestCentroids(X,centroids)

        if plot_progress:
            PPKM.plotProgresskMeans(X,centroids,previous_centroids,idx,K,i)
            previous_centroids=centroids
        centroids= CC.computeCentroids(X,idx,K)
    return (centroids,idx)
Beispiel #2
0
print 'One: =============Find Closest Centroids...'
data=sio.loadmat('ex7data2')
X=data['X']
K=3

initial_centroids=np.array([[3,3],[6,2],[8,5]])

idx=FCC.findClosestCentroids(X,initial_centroids)
print 'Closest Centroids for the first 3 examples: '
print idx[0:3]
print '(the closest centroids should be 1, 3, 2 respectively)'


#Part Two: Compute Means
print 'Two: =============Compute Means ...'
centroids=CC.computeCentroids(X,idx,K)
print 'Centroids computed after initial finding of closest centroids: '
print centroids
print '( the centroids should be [ [ 2.428301 3.157924 ]  [ 5.813503 2.633656 ]  [ 7.119387 3.616684 ]]'


#Part Three: K-Means Clustering
print 'Three: ================== K-Means Clustering ...'
max_iters=10
res=RKM.runkMeans(X,initial_centroids,max_iters,True)
plt.show()
print 'K-Means Done...'

#Part Four: K-Means Clustering on Pixels
print 'Running K-Means clustering on pixels from an image '
img=cv2.imread('bird_small.png')