def prepareData(self, data): # prepare the data for classification aux = preprocessing.norm9(data, R=200, sigma=1.5) out = { 'segments': data, '3-medianWaves-norm': misc.median_waves(aux, 3), '3-medianWaves': misc.median_waves(data, 3), '5-medianWaves': misc.median_waves(data, 5), } return out
def prepareData(self, data): # prepare the data for classification # normalize data = preprocessing.norm9(data, R=200, sigma=1.5) out = {'5-medianWaves': misc.median_waves(data, 5)} return out
def get_data(info, data_type, label): #sampling_rate = info['filter_paramenters']['sampling_rate'] ## out = {} for run in info['%s_patterns' % label]: out[run] = {} for name in info['%s_patterns' % label][run]: # get data corresponding to info['label_patterns'] recid = info['%s_patterns' % label][run][name][1] good_idxs = [] map(lambda i: good_idxs.append(int(i)), info['%s_patterns' % label][run][name][0]) # temp fd = gzip.open( 'D:/experiments/CVP/data/segmentation/engzee/output-%d' % recid, 'rb') data = scipy.array(cPickle.load(fd)[data_type]) ## fd.close() # a = pylab.find(data['R'] <= info['%s_time'%label][1]*sampling_rate)## # b = pylab.find(data['R'] >= info['%s_time'%label][0]*sampling_rate)## # idxs_time = scipy.intersect1d(a,b) ## # data_idxs = scipy.intersect1d(idxs_time, good_idxs) ## data_idxs = good_idxs data = data[data_idxs] ## #data = db2data(data_type, info['database'], refine={'_id': recid})[data_idxs] if info['subtractmean']: data -= scipy.mean(data) if info['normalization'][0]: if info['normalization'][1] == 'meanofmaxs': data /= scipy.mean(numpy.max(data, 1)) elif info['normalization'][1] == 'medianofmaxs': data /= scipy.median(numpy.max(data, 1)) if info['subpattern'][0]: data = featureextraction.subpattern( data, range(info['subpattern'][1], info['subpattern'][2])) # determine mean waves if info['number_mean_waves_%s' % label] == 'all': data = misc.mean_waves(data, len(data)) elif info['number_mean_waves_%s' % label] > 1: data = misc.mean_waves(data, info['number_mean_waves_%s' % label]) # determine median waves elif info['number_median_waves_%s' % label] == 'all': data = misc.median_waves(data, len(data)) elif info['number_median_waves_%s' % label] > 1: data = misc.median_waves( data, info['number_median_waves_%s' % label]) # get n random indexes # ... # quantization if info['quantization'] > 0: data = misc.quantize(data, levels=info['quantization']) if info['patterns2strings']: res = [] for i, si in enumerate(data): line = ''.join('%d' % i for i in si) res.append(line) data = res out[run][name] = data return out
def get_data(st, info, data_type, label): out = {} for run in info['%s_patterns' % label]: out[run] = {} for name in info['%s_patterns' % label][run]: # get data corresponding to info['label_patterns'] recid = info['%s_patterns' % label][run][name][1] data_idxs = [] map(lambda i: data_idxs.append(int(i)), info['%s_patterns' % label][run][name][0]) data = st.db2data(data_type, refine={'_id': [recid]})[recid][0]['signal'][:, :, 4:7] # data = st.db2data(data_type, refine={'_id': [recid]})[recid][0]['signal'].swapaxes(0, 1) # temp R = st.db.records.getEvent(recid, '/ECG/hand/zee5to20/R/engzee', 0)['timeStamps'] filt = st.db.records.getSignal( recid, '/ECG/hand/zee5to20/Segments/engzee', 0)['signal'] if R[0] < 200: # remove first segment data = data[1:] elif len(filt) - R[-1] < 400: # remove last segment data = data[:-1] # outliers data = data[data_idxs] # normalization if info['normalization'] == 'mean': data /= scipy.mean(numpy.max(data, 0)) if info['subpattern']: data = featureextraction.subpattern(data, range(165, 238)) # determine mean waves if info['number_mean_waves_%s' % label] > 1: data = misc.mean_waves(data, info['number_mean_waves_%s' % label]) elif info['number_median_waves_%s' % label] > 1: data = misc.median_waves( data, info['number_median_waves_%s' % label]) # get n random indexes # ... # quantization if info['quantization'] > 0: data = misc.quantize(data, levels=info['quantization']) if info['patterns2strings']: res = [] for i, si in enumerate(data): line = ''.join('%d' % i for i in si) res.append(line) data = res out[run][name] = data return out