def test_get_xs_ys_consistent_wh(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(
            self.features, [0, 1, 2])
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(
            self.features, [0, 1, 2])
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(
            self.features, [0, 1, 2])

        expected_ys = {'label': [2.5, 3.9, 5.0], 'content_id': [0, 1, 2]}

        self.assertEqual(xs['dis_y'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_y'][1].shape, (1, 321, 481))
        self.assertEqual(xs['dis_y'][2].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][1].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][2].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][1].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][2].shape, (1, 321, 481))
        self.assertAlmostEqual(np.mean(xs['dis_y']),
                               128.26146851380497,
                               places=4)
        self.assertEqual(list(ys['label']), expected_ys['label'])
        self.assertEqual(list(ys['content_id']), expected_ys['content_id'])

        self.assertAlmostEqual(np.mean(xys['dis_y']),
                               128.26146851380497,
                               places=4)
        self.assertEqual(list(xys['label']), expected_ys['label'])
        self.assertEqual(list(xys['content_id']), expected_ys['content_id'])
    def test_get_xs_ys_inconsistent_wh(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(
            self.features, [0, 8])
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(
            self.features, [0, 8])
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(
            self.features, [0, 8])

        expected_ys = {'label': [2.5, 4.7], 'content_id': [0, 13]}

        self.assertEqual(xs['dis_y'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_y'][1].shape, (1, 486, 720))
        self.assertEqual(xs['dis_u'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][1].shape, (1, 486, 720))
        self.assertEqual(xs['dis_v'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][1].shape, (1, 486, 720))
        self.assertAlmostEqual(np.mean(xs['dis_y'][0]),
                               160.617204551784,
                               places=4)
        self.assertAlmostEqual(np.mean(xs['dis_y'][1]),
                               35.8163894604481,
                               places=4)
        self.assertEqual(list(ys['label']), expected_ys['label'])
        self.assertEqual(list(ys['content_id']), expected_ys['content_id'])

        self.assertEqual(xys['dis_y'][0].shape, (1, 321, 481))
        self.assertEqual(xys['dis_y'][1].shape, (1, 486, 720))
        self.assertEqual(xys['dis_u'][0].shape, (1, 321, 481))
        self.assertEqual(xys['dis_u'][1].shape, (1, 486, 720))
        self.assertEqual(xys['dis_v'][0].shape, (1, 321, 481))
        self.assertEqual(xys['dis_v'][1].shape, (1, 486, 720))
        self.assertEqual(list(xys['label']), expected_ys['label'])
        self.assertEqual(list(xys['content_id']), expected_ys['content_id'])
    def test_get_xs_ys_inconsistent_wh(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(self.features, [0, 8])
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(self.features, [0, 8])
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(self.features, [0, 8])

        expected_ys = {'label': [2.5, 4.7], 'content_id': [0, 13]}

        self.assertEqual(xs['dis_y'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_y'][1].shape, (1, 486, 720))
        self.assertEqual(xs['dis_u'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][1].shape, (1, 486, 720))
        self.assertEqual(xs['dis_v'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][1].shape, (1, 486, 720))
        self.assertAlmostEqual(np.mean(xs['dis_y'][0]), 160.617204551784, places=4)
        self.assertAlmostEqual(np.mean(xs['dis_y'][1]), 35.8163894604481, places=4)
        self.assertEqual(list(ys['label']), expected_ys['label'])
        self.assertEqual(list(ys['content_id']), expected_ys['content_id'])

        self.assertEqual(xys['dis_y'][0].shape, (1, 321, 481))
        self.assertEqual(xys['dis_y'][1].shape, (1, 486, 720))
        self.assertEqual(xys['dis_u'][0].shape, (1, 321, 481))
        self.assertEqual(xys['dis_u'][1].shape, (1, 486, 720))
        self.assertEqual(xys['dis_v'][0].shape, (1, 321, 481))
        self.assertEqual(xys['dis_v'][1].shape, (1, 486, 720))
        self.assertEqual(list(xys['label']), expected_ys['label'])
        self.assertEqual(list(xys['content_id']), expected_ys['content_id'])
    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_get_xs_ys_consistent_wh(self):
        xs = MomentRandomForestTrainTestModel.get_xs_from_results(self.features, [0, 1, 2])
        ys = MomentRandomForestTrainTestModel.get_ys_from_results(self.features, [0, 1, 2])
        xys = MomentRandomForestTrainTestModel.get_xys_from_results(self.features, [0, 1, 2])

        expected_ys = {'label': [2.5, 3.9, 5.0], 'content_id': [0, 1, 2]}

        self.assertEqual(xs['dis_y'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_y'][1].shape, (1, 321, 481))
        self.assertEqual(xs['dis_y'][2].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][1].shape, (1, 321, 481))
        self.assertEqual(xs['dis_u'][2].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][0].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][1].shape, (1, 321, 481))
        self.assertEqual(xs['dis_v'][2].shape, (1, 321, 481))
        self.assertAlmostEqual(np.mean(xs['dis_y']), 128.26146851380497, places=4)
        self.assertEqual(list(ys['label']), expected_ys['label'])
        self.assertEqual(list(ys['content_id']), expected_ys['content_id'])

        self.assertAlmostEqual(np.mean(xys['dis_y']), 128.26146851380497, places=4)
        self.assertEqual(list(xys['label']), expected_ys['label'])
        self.assertEqual(list(xys['content_id']), expected_ys['content_id'])
    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)
Exemple #10
0
    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)