def interClassDistance(classA,classB,classAweights=None,classBweights=None): #Not tested with weights free version summedDistances = 0 for a,aw in zip(classA,classAweights): for b,bw in zip(classB,classBweights): weights = [float(sum(t))/float(len(t)) for t in zip(aw,bw)] if (classAweights == None or classBweights == None): summedDistances += dtw.dist(a,b) else: summedDistances += dtw.getDTWdist2DweightedSum(a,b,weights) averageDistance = summedDistances / (len(classA)*len(classB)) return averageDistance
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)