In [1]:
%pylab inline
In [2]:
cd /home/chiroptera/workspace/QCThesis/CUDA/
In [3]:
import K_Means3
from K_Means3 import *
reload(K_Means3)
Out[3]:
In [4]:
from sklearn import datasets # generate gaussian mixture
def generateData(n,d,k):
n_int = np.int(n)
# Generate data
data, groundTruth = datasets.make_blobs(n_samples=n_int,n_features=d,centers=k,
center_box=(-1000.0,1000.0))
data = data.astype(np.float32)
return data,groundTruth
In [18]:
data,labels = generateData(1e2,2,6)
for c in np.unique(labels):
c_data = data[np.where(labels==c)[0]]
plt.plot(c_data[:,0],c_data[:,1],'.',label="data")
#plt.plot(data[:,0],data[:,1],'.')
In [15]:
labels
Out[15]:
In [6]:
k=12
iters=100
In [19]:
#%%debug -b K_Means3.py:577n
reload(K_Means3)
grouperCUDA = K_Means()
grouperCUDA._centroid_mode="index"
grouperCUDA._cuda_mem="manual"
grouperCUDA.fit(data, k, iters=iters, mode="cuda", cuda_mem='manual',tol=1e-4,max_iters=300)
In [22]:
for c in np.unique(grouperCUDA.labels_):
c_data = data[np.where(grouperCUDA.labels_==c)[0]]
plt.plot(c_data[:,0],c_data[:,1],'.',label="data")
In [21]:
plt.plot(data[:,0],data[:,1],'.',label="data")
plt.plot(grouperCUDA.centroids[:,0],grouperCUDA.centroids[:,1],'yx',mew=2,label="centroids")
plt.legend(loc="best")
Out[21]:
In [9]:
print grouperCUDA.centroids
print ""
for c in grouperCUDA.partition:
print c
print ""
print grouperCUDA.labels_
print ""
print '# centroids:\t\t', len(np.unique(grouperCUDA.labels_))
print '# partition clusters:\t',len(grouperCUDA.partition)
print '# label clusters:\t',np.unique(grouperCUDA.labels_).size
def countSamples(partition):
count=0
for c in partition:
count += c.size
return count
print countSamples(grouperCUDA.partition)