def classify_signals(self): events = [] print self.signal_indices print 'DF length', len(self.df) for event in self.signal_indices: start_index = int(event[0]) end_index = int(event[1]) end_index = len(self.df)-1 if end_index > len(self.df) else end_index event_name = event[2] df_sub = self.df.loc[start_index:end_index] events.append(compute_signal_features(df_sub)) # only if there is actual events if len(events) > 0: df_events = pd.DataFrame(events).fillna(0) predictions = self.model.predict(df_events[self.active_features]) results = map( lambda x: (eval(x), 'Is Good Head Turn' if bool(x) else 'BAD'), predictions, ) return results return []
def load_training_data(): data_dir = 'data/' direcs = map(lambda x: data_dir + x,[ 'look_left_good/events', 'look_left_bad/events', 'look_right_good/events', 'look_right_bad/events', ]) # flatten all event files into a single list of file paths event_files = reduce(lambda l,r:l + r, map(lambda x: map(lambda y: x + '/' + y, os.listdir(x)), direcs ) ) events = [] for f in event_files: print 'Extracting features from:', f df = pd.read_csv(f) row = compute_signal_features(df) events.append(row) return pd.DataFrame(events).fillna(0)