def test_expand(self):
     grammar = CKSGrammar(base_kernel_names=['SE', 'RQ'])
     grammar.build(n_dims=2)
     scored_kernel = GPModel(self.se0)
     scored_kernel.score = 1
     result = grammar.expand([scored_kernel])
     self.assertIsInstance(result, list)
Beispiel #2
0
    def test_to_dict(self):
        test_cases = (
            (None, 'None score'),
            (10., 'Positive score')
        )
        for score, description in test_cases:
            with self.subTest(description=description):
                kernel = Covariance(RBF(1) * RBF(1) + RationalQuadratic(1))
                gp_model = GPModel(kernel)
                gp_model.score = score

                actual = gp_model.to_dict()

                self.assertIsInstance(actual, dict)

                self.assertIn('likelihood', actual)
                self.assertIn('covariance', actual)
                self.assertIn('score', actual)

                self.assertEqual(None, actual['likelihood'])
                self.assertEqual(gp_model.covariance.to_dict(), actual['covariance'])
                self.assertEqual(gp_model.score, actual['score'])
Beispiel #3
0
    def test_remove_duplicate_gp_models(self):
        k1 = GPModel(Covariance(RBF(1)))
        k1.score = 10

        k2 = GPModel(Covariance(RBF(1)))
        k2.score = 9

        k3 = GPModel(Covariance(RBF(1)))

        k4 = GPModel(Covariance(RBF(1)))

        k5 = GPModel(Covariance(RBF(1)))

        k6 = GPModel(Covariance(RBF(1, lengthscale=0.5)))

        k7 = GPModel(Covariance(RationalQuadratic(1)))

        # Always keep k1 then k2 then k3 etc.
        result = remove_duplicate_gp_models([k1, k2, k3, k4, k5, k6, k7])
        self.assertListEqual(result, [k1, k7])

        result = remove_duplicate_gp_models([k1, k2, k3, k4, k5, k7])
        self.assertListEqual(result, [k1, k7])

        result = remove_duplicate_gp_models([k1, k2, k3, k4, k7])
        self.assertListEqual(result, [k1, k7])

        result = remove_duplicate_gp_models([k1, k2, k3, k7])
        self.assertListEqual(result, [k1, k7])

        result = remove_duplicate_gp_models([k1, k2, k7])
        self.assertListEqual(result, [k1, k7])

        result = remove_duplicate_gp_models([k1, k7])
        self.assertListEqual(result, [k1, k7])

        result = remove_duplicate_gp_models([k2, k3, k4, k5, k6, k7])
        self.assertListEqual(result, [k2, k7])

        result = remove_duplicate_gp_models([k2, k3, k4, k5, k7])
        self.assertListEqual(result, [k2, k7])

        result = remove_duplicate_gp_models([k2, k3, k4, k7])
        self.assertListEqual(result, [k2, k7])

        result = remove_duplicate_gp_models([k2, k3, k7])
        self.assertListEqual(result, [k2, k7])

        result = remove_duplicate_gp_models([k2, k7])
        self.assertListEqual(result, [k2, k7])

        result = remove_duplicate_gp_models([k3, k4, k5, k6, k7])
        self.assertTrue(result == [k3, k7] or result == [k4, k7])

        result = remove_duplicate_gp_models([k3, k4, k5, k7])
        self.assertTrue(result == [k3, k7] or result == [k4, k7])

        result = remove_duplicate_gp_models([k4, k3, k5, k6, k7])
        self.assertTrue(result == [k3, k7] or result == [k4, k7])

        result = remove_duplicate_gp_models([k4, k3, k5, k7])
        self.assertTrue(result == [k3, k7] or result == [k4, k7])

        result = remove_duplicate_gp_models([k3, k4, k5, k7])
        self.assertTrue(result == [k3, k7] or result == [k4, k7])

        result = remove_duplicate_gp_models([k3, k4, k7])
        self.assertTrue(result == [k3, k7] or result == [k4, k7])

        result = remove_duplicate_gp_models([k4, k3, k7])
        self.assertTrue(result == [k3, k7] or result == [k4, k7])

        result = remove_duplicate_gp_models([k3, k7])
        self.assertListEqual(result, [k3, k7])

        result = remove_duplicate_gp_models([k4, k7])
        self.assertListEqual(result, [k4, k7])

        result = remove_duplicate_gp_models([k5, k6, k7])
        self.assertTrue(result == [k5, k7] or result == [k6, k7])

        result = remove_duplicate_gp_models([k6, k5, k7])
        self.assertTrue(result == [k5, k7] or result == [k6, k7])