def cleanFracs(fracs, plot=False, MAwindowSize=8, MAexp=1.4): frameSize = math.ceil(np.sqrt(len(fracs))) cleanedParts = [] originalParts = [] if(plot): pass #figOrigin = plt.figure() #figCleaned = plt.figure() i=1 for time, values in fracs: if(plot): pass #curr = figOrigin.add_subplot(frameSize, frameSize, i) #curr.plot(time,values) #length = int((time[-1] - time[0]) / 30) time, values = inter.getUniformSampled(time, values) originalParts.append(values) cleanesdValues = ma.movingAverage(values, MAwindowSize, MAexp) if(plot): plt.figure() plt.plot(values) plt.plot(cleanesdValues) plt.show() #curr = figCleaned.add_subplot(frameSize, frameSize, i) #curr.plot(time,values) cleanedParts.append(cleanesdValues) i+=1 return cleanedParts, originalParts
def analyzeDataInner(time, data, label): vec = [] featuresNames = [] v, f = getStats(data, label) vec += v featuresNames += f _, un = inter.getUniformSampled(time, data) cleaned = ma.movingAverage(un, 20, 1.1) v, f = getStats(cleaned, label + "after LPF ") vec += v featuresNames += f velocity = np.diff(cleaned) v, f = getStats(velocity, label + " velocity") vec += v featuresNames += f acceleration = np.diff(velocity) v, f = getStats(acceleration, label + " acceleration") vec += v featuresNames += f jurk = np.diff(acceleration) v, f = getStats(jurk, label + " jurk") vec += v featuresNames += f return vec, featuresNames
def getData(fileName, vecSize): f = open(fileName, 'r') all = [] map = {} for line in f: splited = line.split() if len(splited) == 0: continue jointName = splited[0] if jointName in joints: if not jointName in map:#initialization map[jointName] = [] for _ in splited[1:]: map[jointName].append([]) for i,l in enumerate(map[jointName]): l.append(float(splited[1+i])) #map[jointName][i].append(a) #except: # pass ret = [] for joint,vecs in map.items(): for vec in vecs: _, uniformlySampled = inter.getUniformSampled(range(len(vec)), vec, vecSize) """ maxV = np.max(uniformlySampled) minV = np.min(uniformlySampled) amp = maxV -minV if amp==0: print 'zeroi input' else: uniformlySampled = [2*v/amp -1 for v in uniformlySampled] """ ret = ret + uniformlySampled.tolist() """ ret = [] for i in xrange(0, len(all), vecSize): ret.append(all[i:i+vecSize]) """ return ret
for subject in subjects: for stride in xrange(1,13): file = '../AMCs/subjects/' + str(subject) + '/' + str(stride) + '.amc' features = [] for joint in joints: try: input = getAMCperiod(joint, file) except: continue input = alignByMax(input) sub = fig.add_subplot(frameSize*110 + subjects.index(subject)) sub.plot(range(len(input)), input) sub_uniform = fig_uniform.add_subplot(frameSize*110 + subjects.index(subject)) specialFeatures = [op(input) for op in specialOperators] new_time, uniform_input = inter.getUniformSampled(xrange(len(input)), input, lenVec) features += specialFeatures features += uniform_input.tolist() sub_uniform.plot( xrange(len(uniform_input)), uniform_input) data.append(uniform_input) tags.append(subject) plt.xlabel('Time (in frames)') plt.ylabel(joint + ' angle') plt.title('subject: ' + str(subject)) if len(features)==0: continue for f in features: out.write(str(f)+',') out.write(str(subject)+'\n') """ cl = KNeighborsClassifier()
plt.ylabel(joint + ' angle') fig_uniform = plt.figure() data = [] tags = [] for subject in subjects: for stride in xrange(1,13): file = 'AMCs/subjects/' + str(subject) + '/' + str(stride) + '.amc' try: input = getAMCperiod(joint, file) except: continue input = alignByMax(input) sub = fig.add_subplot(frameSize*110 + subjects.index(subject)) sub.plot(range(len(input)), input) sub_uniform = fig_uniform.add_subplot(frameSize*110 + subjects.index(subject)) new_time, uniform_input = inter.getUniformSampled(xrange(len(input)), input, numOfFeatures) sub_uniform.plot( xrange(numOfFeatures), uniform_input) data.append(uniform_input) tags.append(subject) plt.xlabel('Time (in frames)') plt.ylabel(joint + ' angle') plt.title('subject: ' + str(subject)) cl = KNeighborsClassifier() cl.n_neighbors = 5 cl.weights = 'distance' testSize = 35 score = crossValidate(cl, data, tags, testSize) outFile = 'out.txt'