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()
Exemple #3
0
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)
Exemple #4
0
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)