Example #1
0
    def __init__(self, controller):
        # c is the constant that is added if an obs is 0
        self._emission_constant = 0.00001
        self._transition_constant = 0.000001
        self._pi_constant = 0.000001

        ModelHMM_log_scaled.__init__(self, controller)
Example #2
0
 def test_pred_next_obs_single(self):
     self.ctrl.load_dataset()
     hmm_model = ModelHMM_log_scaled(self.ctrl)
     self.ctrl.register_model(hmm_model)
     self.ctrl.init_model_on_dataset()
     self.ctrl.train_model()
     hmm_model._hmm.set_format_full(True)
     #print(hmm_model)
     print('#' * 100)
     obs_seq = [('binary_sensor.motion_bed', 0),
                ('binary_sensor.motion_mirror', 1),
                ('binary_sensor.motion_bed', 0)]
     tupel = hmm_model.predict_next_obs(obs_seq)
Example #3
0
 def test_classify(self):
     self.ctrl.load_dataset()
     hmm_model = ModelHMM_log_scaled(self.ctrl)
     self.ctrl.register_model(hmm_model)
     self.ctrl.init_model_on_dataset()
     self.ctrl.train_model()
     hmm_model._hmm.set_format_full(True)
     print(hmm_model)
     print('-' * 10)
     obs_seq = [('binary_sensor.motion_bed', 0),
                ('binary_sensor.motion_mirror', 1),
                ('binary_sensor.motion_bed', 0)]
     pred_state = hmm_model.classify(obs_seq)
     print('#' * 100)
     print(pred_state)
Example #4
0
 def test_classify_multi(self):
     """
     used to test for classification of multiple labels
     """
     self.ctrl.load_dataset()
     hmm_model = ModelHMM_log_scaled(self.ctrl)
     self.ctrl.register_model(hmm_model)
     self.ctrl.init_model_on_dataset()
     self.ctrl.train_model()
     hmm_model._hmm.set_format_full(True)
     print(hmm_model)
     print('-' * 10)
     obs_seq = [('binary_sensor.motion_bed', 0),
                ('binary_sensor.motion_mirror', 1)
                ]  #, ('binary_sensor.motion_bed', 0)]
     act_state_dict = hmm_model.classify_multi(obs_seq)
     print('#' * 100)
Example #5
0
 def test_load_modelHMM(self):
     self.ctrl.load_dataset()
     hmm_model = ModelHMM_log_scaled(self.ctrl)
     self.ctrl.register_model(hmm_model)
     self.ctrl.init_model_on_dataset()
     hmm_model._hmm.set_format_full(True)
     print(self.ctrl._model)
     print(self.hass_obj.get_obs_lbl_hashmap())
     print(self.hass_obj.get_state_lbl_hashmap())
Example #6
0
    def test_train_modelHMM(self):
        self.ctrl.load_dataset()
        hmm_model = ModelHMM_log_scaled(self.ctrl)
        self.ctrl.register_model(hmm_model)
        self.ctrl.init_model_on_dataset()
        hmm_model._hmm.set_format_full(True)
        print(self.ctrl._model)

        self.ctrl.train_model()
        print(self.ctrl._model)
Example #7
0
 def test_pred_next_obs_multi(self):
     self.ctrl.load_dataset()
     hmm_model = ModelHMM_log_scaled(self.ctrl)
     self.ctrl.register_model(hmm_model)
     self.ctrl.init_model_on_dataset()
     self.ctrl.train_model()
     hmm_model._hmm.set_format_full(True)
     #print(hmm_model)
     print('#' * 100)
     obs_seq = [('binary_sensor.motion_bed', 0),
                ('binary_sensor.motion_mirror', 1),
                ('binary_sensor.motion_bed', 0)]
     #arr = hmm_model.predict_next_obs_arr(obs_seq)
     print(hmm_model._obs_lbl_hashmap)
     print(hmm_model._obs_lbl_rev_hashmap)
     res_dict = hmm_model.predict_prob_xnp1(obs_seq)
     print(hmm_model._obs_lbl_hashmap)
     print(hmm_model._obs_lbl_rev_hashmap)
     res_dict = hmm_model.predict_prob_xnp1(obs_seq)
     print(hmm_model._obs_lbl_hashmap)
     print(hmm_model._obs_lbl_rev_hashmap)
     print('#' * 100)
     print(res_dict)
Example #8
0
    def test_load_custom_lists_modelHMM(self):
        custom_state_list = ['sleeping', 'cooking']
        custom_obs_list = [
            'binary_sensor.motion_bed', 'binary_sensor.motion_mirror',
            'binary_sensor.motion_pc', 'switch.test_switch_1',
            'light.test_light'
        ]
        self.ctrl.set_custom_state_list(custom_state_list)
        self.ctrl.set_custom_obs_list(custom_obs_list)

        self.ctrl.load_dataset()
        hmm_model = ModelHMM_log_scaled(self.ctrl)
        self.ctrl.register_model(hmm_model)
        self.ctrl.init_model_on_dataset()
        hmm_model._hmm.set_format_full(True)
        print(self.ctrl._model)
Example #9
0
    def test_bench_modelHMM(self):
        self.ctrl.load_dataset()
        hmm_model = ModelHMM_log_scaled(self.ctrl)
        self.ctrl.register_model(hmm_model)
        self.ctrl.init_model_on_dataset()
        hmm_model._hmm.set_format_full(True)
        print(self.ctrl._model)

        self.ctrl.register_benchmark()
        self.ctrl.train_model()
        print(self.ctrl._model)
        report = self.ctrl.create_report(conf_matrix=True,
                                         accuracy=True,
                                         precision=True,
                                         recall=True,
                                         f1=True)
        print(report)
Example #10
0
 def setUp(self):
     # set of observations
     self.ctrl = Controller()
     self.ctrl.set_dataset(Dataset.HASS_TESTING)
     self.hass_obj = self.ctrl._dataset  #type: DatasetHomeassistant
     self.hmm_model = ModelHMM_log_scaled(self.ctrl)