def averageSimilarityMatrix(dictOfClassesLocal, dictOfWeightsLocal,title="Cluster similarity matrix",savePlot=False): global bar, progressCount, dictOfClasses, dictOfWeights, arguments, distances dictOfClasses = dictOfClassesLocal dictOfWeights = dictOfWeightsLocal print "Computing similarity matrix..." bar = progressbar.ProgressBar(maxval=len(dictOfClasses.keys())**2, widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()]) bar.start() progressCount = 0 # Initialise task matrix arguments = [] distances = [] for i,k in zip(range(len(dictOfClasses.keys())),reversed(sorted(dictOfClasses.keys()))): arguments.append([]) distances.append([]) for j in sorted(dictOfClasses.keys()): arguments[i].append((dictOfClasses[k],dictOfClasses[j],dictOfWeights[k],dictOfWeights[j])) distances[i].append([]) # Distribute tasks poo = Pool() for i in range(len(dictOfClasses.keys())**2): poo.apply_async(interClassDistance,(i,),callback=updateResultMatrix) poo.close() poo.join() bar.finish() plot.plotSimilarityMatrix(distances,sorted(dictOfClasses.keys()),title,savePlot)
def dtwDirectoryAgainstItself(dir_name): inputFiles = glob.glob("%s/*.csv"%dir_name) distances = [] for i in range(len(inputFiles)): distances.append([]) for j in range(len(inputFiles)): distances[i].append(dtw.getDTWdist(inputFiles[i],inputFiles[j])) plot.plotSimilarityMatrix(distances,[f.split('/')[-1].split('.')[0] for f in inputFiles]) data = pandas.DataFrame(np.array(distances), columns=[f.split('/')[-1].split('.')[0] for f in inputFiles]) square_table(data) plt.show()
def similarityMatrixWeighted(segments,segmentNames,weights,title,savePlot=False): print "Constructing similarity matrix" bar = progressbar.ProgressBar(maxval=len(segments)**2, widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()]) bar.start() progressCount = 0 distances = [] for i,k in zip(range(len(segments)),reversed(range(len(segments)))): distances.append([]) for j in range(len(segments)): distances[i].append(dtw.getDTWdist2DweightedSum(segments[k],segments[j],weights)) progressCount+=1 bar.update(progressCount) bar.finish() plot.plotSimilarityMatrix(distances,segmentNames,title,savePlot)
def averageSimilarityMatrix(dictOfClasses, dictOfWeights=None,title,savePlot=False): print "Constructing similarity matrix" if sorted(dictOfClasses.keys()) != sorted(dictOfWeights.keys()): import sys sys.exit("Mismatching keys between weights and classes to compute average similarity matrix") bar = progressbar.ProgressBar(maxval=len(dictOfClasses.keys())**2, widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()]) bar.start() progressCount = 0 distances = [] for i,k in zip(range(len(dictOfClasses.keys())),reversed(sorted(dictOfClasses.keys()))): distances.append([]) for j in sorted(dictOfClasses.keys()): if dictOfWeights == None: distances[i].append(interClassDistance(dictOfClasses[k],dictOfClasses[j])) else: distances[i].append(interClassDistance(dictOfClasses[k],dictOfClasses[j],dictOfWeights[k],dictOfWeights[j])) progressCount+=1 bar.update(progressCount) bar.finish() plot.plotSimilarityMatrix(distances,sorted(dictOfClasses.keys()),title,savePlot)