Esempio n. 1
0
 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 []
Esempio n. 2
0
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)