def train(self, intervals): finish = False prepare = Preparer(intervals, **self.config) while not finish: # get events rows, flag = prepare.get_data_from_db() batch_states = [] batch_newstates = [] batch_actions = [] for row in rows: # get info about event time_event = None tag_id = None user_id = None time_delta = None # init features state = self.model.get_features(user_id, tag_id, time_event) next_state = self.model.get_features(user_id, tag_id, time_event + time_delta) action = 1 batch_states.append(state) batch_newstates.append(next_state) batch_actions.append(action) if len(batch_states) > 0: self.model_dqnn.train(batch_states, batch_newstates, batch_actions) if not flag: finish = prepare.next_iteration()
def predict(self, intervals): finish = False prepare = Preparer(intervals, **self.config) while not finish: # get events rows, flag = prepare.get_data_from_db() for row in rows: # get info about event time_event = None tag_id = None user_id = None time_delta = None # init features state = self.model.get_features(user_id, tag_id, time_event) predict = self.model_dqnn.predict(state)
def predict(self, model_dqnn, intervals): finish = False estimator = Estimator() prepare = Preparer(intervals, **self.config) while not finish: # get events rows, flag = prepare.get_data_from_db() for row in rows: # get info about event time_event = None user_id = None time_delta = None time_state = time_event - datetime.timedelta(seconds=1) time_next_state = time_event + time_delta categories = self.model.get_read_categories( user_id, time_state, time_next_state, self.all_categories) result = {} for tag_id in categories: action = categories[tag_id] state = self.model.get_features(user_id, tag_id, time_state) predict = model_dqnn.predict(state)