def PQEval(data,lenSubVec,numSubCenter,centersPQ):
(dataSize, dataDim)=data.shape
if 0!=dataDim%lenSubVec:
print "Cannot partition the feature space with the given segment number"
return
numSubVec=dataDim/lenSubVec
codePQ=-npy.ones((dataSize, numSubVec),dtype=npy.int32)
objKmeans=KMeans(numSubCenter)
if (centersPQ.shape[0]!=numSubVec*numSubCenter
or centersPQ.shape[1]!=lenSubVec):
print "PQ model dimension is not compatible with input data"
return
for ii in range(numSubVec):
objKmeans.cluster_centers_=centersPQ[ii*numSubCenter:(ii+1)*numSubCenter,:]
codePQ[:,ii]=objKmeans.predict(data[:,ii*lenSubVec:(ii+1)*lenSubVec])
return codePQ
评论列表
文章目录