def start(self): if self.activities is not None: for body in self.activities['body']['activities']: for act in body: value = body[act] if act == 'hr_average': val = value self.setDriver('ST', val) if act == 'hr_min': val = value self.setDriver('GV0', val) if act == 'hr_max': val = value self.setDriver('GV1', val) if act == 'hr_zone_0': val = utils.seconds_to_minutes(value) self.setDriver('GV2', val) if act == 'hr_zone_1': val = utils.seconds_to_minutes(value) self.setDriver('GV3', val) if act == 'hr_zone_2': val = utils.seconds_to_minutes(value) self.setDriver('GV4', val) if act == 'hr_zone_3': val = utils.seconds_to_minutes(value) self.setDriver('GV5', val)
def start(self): if self.devices is not None: for dev in self.devices['body']['devices']: if dev['type'] == "Activity Tracker": value = dev['battery'] if value == "low": battery = 1 elif value == "medium": battery = 2 elif value == "high": battery = 3 else: battery = 0 self.setDriver('BATLVL', battery) if self.activities is not None: for body in self.activities['body']['activities']: for act in body: value = body[act] if act == 'steps': val = value self.setDriver('ST', val) if act == 'distance': val = utils.meters_to_mile(value) self.setDriver('GV0', val) if act == 'elevation': if value == 0: self.setDriver('GV1', value, force=True) else: val = value self.setDriver('GV1', val) if act == 'soft': val = utils.seconds_to_minutes(value) self.setDriver('GV2', val) if act == 'moderate': val = utils.seconds_to_minutes(value) self.setDriver('GV3', val) if act == 'intense': val = utils.seconds_to_minutes(value) self.setDriver('GV4', val) if act == 'active': val = utils.seconds_to_minutes(value) self.setDriver('GV5', val) if act == 'calories': val = round(value, 2) self.setDriver('GV6', val) if act == 'totalcalories': val = round(value, 2) self.setDriver('GV7', val)
def start(self): if self.sleep is not None: for series in self.sleep['body']['series']: model = series['model'] if model == 16: for entry in series['data']: value = series['data'][entry] if entry == "sleep_score": val = value self.setDriver('ST', val) if entry == "lightsleepduration": val = utils.seconds_to_minutes(value) self.setDriver('GV0', val) if entry == "deepsleepduration": val = utils.seconds_to_minutes(value) self.setDriver('GV1', val) if entry == "wakeupcount": val = value self.setDriver('GV2', val) if entry == "wakeupduration": val = utils.seconds_to_minutes(value) self.setDriver('GV3', val) if entry == "durationtosleep": val = utils.seconds_to_minutes(value) self.setDriver('GV4', val) if entry == "durationtowakeup": val = utils.seconds_to_minutes(value) self.setDriver('GV5', val) if entry == "hr_average": val = value self.setDriver('GV6', val) if entry == "hr_min": val = value self.setDriver('GV7', val) if entry == "hr_max": val = value self.setDriver('GV8', val)
def start(self): if self.sleep is not None: for series in self.sleep['body']['series']: model = series['model'] if model == 32: for entry in series['data']: value = series['data'][entry] if entry == "sleep_score": val = value self.setDriver('ST', val) if entry == "lightsleepduration": val = utils.seconds_to_minutes(value) self.setDriver('GV0', val) if entry == "deepsleepduration": val = utils.seconds_to_minutes(value) self.setDriver('GV1', val) if entry == "remsleepduration": val = utils.seconds_to_minutes(value) self.setDriver('GV2', val) if entry == "wakeupcount": val = value self.setDriver('GV3', val) if entry == "wakeupduration": val = utils.seconds_to_minutes(value) self.setDriver('GV4', val) if entry == "durationtosleep": val = utils.seconds_to_minutes(value) self.setDriver('GV5', val) if entry == "durationtowakeup": val = utils.seconds_to_minutes(value) self.setDriver('GV6', val) if entry == "hr_average": val = value self.setDriver('GV7', val) if entry == "hr_min": val = value self.setDriver('GV8', val) if entry == "hr_max": val = value self.setDriver('GV9', val) if entry == "rr_average": val = value self.setDriver('GV10', val) if entry == "rr_min": val = value self.setDriver('GV11', val) if entry == "rr_max": val = value self.setDriver('GV12', val) if entry == "breathing_disturbances_intensity": if value <= 30: val = 1 elif value > 30 <= 60: val = 2 elif value > 60: val = 3 else: val = 0 self.setDriver('GV13', val) if entry == "snoring": val = utils.seconds_to_minutes(value) self.setDriver('GV14', val) if entry == "snoringepisodecount": val = value self.setDriver('GV15', val)
f1_weighted = f1_score(np.argmax(y_test, axis=1), np.argmax(pred, axis=1), labels=None, average='weighted', sample_weight=None) logger.append_log("F1 score (weighted) " + str(f1_weighted)) logger.append_log("F1 score (macro) " + str( f1_score(np.argmax(y_test, axis=1), np.argmax(pred, axis=1), labels=None, average='macro', sample_weight=None))) logger.append_log("F1 score (micro) " + str( f1_score(np.argmax(y_test, axis=1), np.argmax(pred, axis=1), labels=None, average='micro', sample_weight=None)) ) # weighted and micro preferred in case of imbalance for i, row in enumerate(conf_mat): logger.append_log("precision of class {} = {}".format( i, np.round(row[i] / np.sum(row), 2))) if is_last_batch: break logger.append_log("Complete training finished in {}".format( seconds_to_minutes(time.time() - start_time))) logger.flush()
plot_history(history, count) min_arg = np.argmin(np.array(history.history['val_loss'])) logger.append_log("Best val_loss is {} and corresponding train_loss is {}".format( history.history['val_loss'][min_arg], history.history['loss'][min_arg])) test_res = model.evaluate(x_test, y_test, verbose=0) logger.append_log("keras evaluate result =" + str(test_res)+", metrics:"+str(model.metrics_names)) pred = model.predict(x_test) check_baseline(np.argmax(pred, axis=1), np.argmax(y_test, axis=1)) conf_mat = confusion_matrix(np.argmax(y_test, axis=1), np.argmax(pred, axis=1)) logger.append_log('\n'+str(conf_mat)) labels = [0, 1, 2] f1_weighted = f1_score(np.argmax(y_test, axis=1), np.argmax(pred, axis=1), labels=None, average='weighted', sample_weight=None) logger.append_log("F1 score (weighted) " + str(f1_weighted)) logger.append_log( "F1 score (macro) " + str(f1_score(np.argmax(y_test, axis=1), np.argmax(pred, axis=1), labels=None, average='macro', sample_weight=None))) logger.append_log( "F1 score (micro) " + str(f1_score(np.argmax(y_test, axis=1), np.argmax(pred, axis=1), labels=None, average='micro', sample_weight=None))) # weighted and micro preferred in case of imbalance for i, row in enumerate(conf_mat): logger.append_log("precision of class {} = {}".format(i, np.round(row[i] / np.sum(row), 2))) if is_last_batch: break logger.append_log("Complete training finished in {}".format(seconds_to_minutes(time.time() - start_time))) logger.flush()