def test_train_save_load_predict(self):

        xs = MomentRandomForestTrainTestModel.get_xs_from_results(
            self.features)
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(
            self.features)
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(
            self.features)

        # using dis_y only
        del xs['dis_u']
        del xs['dis_v']
        del xys['dis_u']
        del xys['dis_v']

        model = MomentRandomForestTrainTestModel({
            'norm_type': 'normalize',
            'random_state': 0
        })
        model.train(xys)

        model.to_file(self.model_filename)
        self.assertTrue(os.path.exists(self.model_filename))

        loaded_model = TrainTestModel.from_file(self.model_filename)

        result = loaded_model.evaluate(xs, ys)
        self.assertAlmostEquals(result['RMSE'], 0.17634739353518517, places=4)
    def test_train_predict_using_yuv(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(self.features)
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(self.features)
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(self.features)

        model = MomentRandomForestTrainTestModel({'norm_type':'normalize', 'random_state':0})
        model.train(xys)

        result = model.evaluate(xs, ys)
        self.assertAlmostEquals(result['RMSE'], 0.51128487038576109, places=4)
    def test_train_predict_using_yuv(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(
            self.features)
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(
            self.features)
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(
            self.features)

        model = MomentRandomForestTrainTestModel({
            'norm_type': 'normalize',
            'random_state': 0
        })
        model.train(xys)

        result = model.evaluate(xs, ys)
        self.assertAlmostEquals(result['RMSE'], 0.51128487038576109, places=4)
    def test_train_predict(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(self.features)
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(self.features)
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(self.features)

        # using dis_y only
        del xs['dis_u']
        del xs['dis_v']
        del xys['dis_u']
        del xys['dis_v']

        model = MomentRandomForestTrainTestModel({'norm_type':'normalize', 'random_state':0})
        model.train(xys)

        result = model.evaluate(xs, ys)
        self.assertAlmostEquals(result['RMSE'], 0.17634739353518517, places=4)
    def test_train_predict(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(
            self.features)
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(
            self.features)
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(
            self.features)

        # using dis_y only
        del xs['dis_u']
        del xs['dis_v']
        del xys['dis_u']
        del xys['dis_v']

        model = MomentRandomForestTrainTestModel({
            'norm_type': 'normalize',
            'random_state': 0
        })
        model.train(xys)

        result = model.evaluate(xs, ys)
        self.assertAlmostEquals(result['RMSE'], 0.17634739353518517, places=4)
    def test_train_save_load_predict(self):

        xs = MomentRandomForestTrainTestModel.get_xs_from_results(self.features)
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(self.features)
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(self.features)

        # using dis_y only
        del xs['dis_u']
        del xs['dis_v']
        del xys['dis_u']
        del xys['dis_v']

        model = MomentRandomForestTrainTestModel({'norm_type':'normalize', 'random_state':0})
        model.train(xys)

        model.to_file(self.model_filename)
        self.assertTrue(os.path.exists(self.model_filename))

        loaded_model = TrainTestModel.from_file(self.model_filename)

        result = loaded_model.evaluate(xs, ys)
        self.assertAlmostEquals(result['RMSE'], 0.17634739353518517, places=4)